В теме 4 сообщения

RASTAMAN
Великий Гуру

Введение на ваш сервер категорий прав А B C D 
Введение на ваш сервер категорий прав Мото, Авто, Лодка, Самолет
Все координаты уже есть. 
Интерьер и Маппинг присутсвуют

Спойлер



//добавить ко всем define
#define callback%0(%1)   forward%0(%1); public%0(%1)

// ко всем enum
enum
{
        CHECKPOINT_1,CHECKPOINT_2,CHECKPOINT_3,CHECKPOINT_4,CHECKPOINT_5,CHECKPOINT_6,CHECKPOINT_7,CHECKPOINT_8,CHECKPOINT_9,
        CHECKPOINT_10,CHECKPOINT_11,CHECKPOINT_12,CHECKPOINT_13,CHECKPOINT_14,CHECKPOINT_15,CHECKPOINT_16,CHECKPOINT_17,
        CHECKPOINT_18,CHECKPOINT_19,CHECKPOINT_20,
}
//Ко всем new
//==============[Автошкола by Crystalix Studio]=============
new TakingLesson[MAX_PLAYERS];
new LessonCar[MAX_PLAYERS];
new LessonStat[MAX_PLAYERS];
new pLessonCar[MAX_PLAYERS];
new JobCarTime[MAX_PLAYERS];
new CPL[MAX_PLAYERS];
new instcar;

//Добавить в public OnPlayerCommandText(playerid, cmdtext[])
//Тестирование ПДД==============================================================
if(strcmp(cmdtext, "/teststart",true)==0)//команда для начала сдачи на права
{
        if(IsPlayerConnected(playerid))
        {
                if(PlayerToPoint(3.0, playerid,2144.6,-2196.5,23.2)) //Координаты где можно сдать на права
                        {
                                if(PlayerInfo[playerid][pCarLicB] < 1)
                                {
                                        if(pTestPDD[playerid] == 0)
                                        {
                                                if(PlayerInfo[playerid][pMoney] >= 5000)// 5000 - это цена за экзамен на права
                                                {
                                                        GameTextForPlayer(playerid, "~r~…®C¦PYK¦A„",5000,3);// не трогать
                                                        TogglePlayerControllable(playerid,0);
                                                        IO1(playerid);
                                                        SetTimerEx("IO2", 5000, 0, "d", playerid);
                                                        SetTimerEx("IO3", 5000, 0, "d", playerid);
                                                        SetTimerEx("IO4", 5000, 0, "d", playerid);
                                                        SetTimerEx("IO5", 5000, 0, "d", playerid);
                                                        SetTimerEx("IO6", 5000, 0, "d", playerid);
                                                }
                                                else
                                                {
                                                        SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вам не хватает денег, чтобы пройти тест!");
                                                        return 1;
                                                }
                                        }
                                        else
                                        {
                                                SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вы уже находитесь на испытании!");
                                                return 1;
                                        }
                                }
                                else
                                {
                                        SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: У вас уже есть водительские права!");
                                        return 1;
                                }

                }
        }
        return 1;
}
if(strcmp(cmd,"/licenses",true)==0)
{
        if(IsPlayerConnected(playerid))
        {
                new str[128];
                new text1[27];
                new text2[27];
                new text3[27];
                new text4[27];
                new text5[27];
                new text6[27];
                new text7[27];
                new text8[27];
                if(PlayerInfo[playerid][pCarLicA]) { text1 = "Имеется"; } else { text1 = "Не имеется"; }
                if(PlayerInfo[playerid][pCarLicB]) { text2 = "Имеется"; } else { text2 = "Не имеется"; }
                if(PlayerInfo[playerid][pCarLicC]) { text3 = "Имеется"; } else { text3 = "Не имеется"; }
                if(PlayerInfo[playerid][pCarLicD]) { text4 = "Имеется"; } else { text4 = "Не имеется"; }
                format(str,sizeof(str),"Лицензия на категорию А:          %s.\n",text1);
    SendClientMessage(playerid, COLOR_GREY, str);
                format(str,sizeof(str),"Лицензия на категорию B:          %s.\n",text2);
    SendClientMessage(playerid, COLOR_GREY, str);
                format(str,sizeof(str),"Лицензия на категорию C:          %s.\n",text3);
    SendClientMessage(playerid, COLOR_GREY, str);
                format(str,sizeof(str),"Лицензия на категорию D:          %s.\n",text4);
    SendClientMessage(playerid, COLOR_GREY, str);
        }
        return true;
}
//================================[Выдать все лицензии через админку]=========================
if(strcmp(cmd, "/agivelicense", true) == 0||strcmp(cmd, "/admgl", true) == 0){//команда для Админов 3-го уровня и выше
        if(IsPlayerConnected(playerid)){
                if (PlayerInfo[playerid][pAdmin] >= 3){
                        new x_nr[256];
                        x_nr = strtok(cmdtext, idx);
                        if(!strlen(x_nr)) {SendClientMessage(playerid, COLOR_WHITE, "Используйте: /agivelicense [name] [id_игрока/ЧастьИмени]");
                                SendClientMessage(playerid, COLOR_WHITE, "Лицензии: KatA,KatB,KatC,KatD, Pilots, Sailing, Fishing, Weapon, all(все лицы).");return true;}
                        if(strcmp(x_nr,"KatA",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatA [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали ВУ Категории A %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам ВУ Категории A. ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pCarLicA] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"KatB",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatB [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали ВУ Категории B %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам ВУ Категории B. ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pCarLicB] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"KatC",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatC [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали ВУ Категории C %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам ВУ Категории C. ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pCarLicC] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"KatD",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatD [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали ВУ Категории D %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам ВУ Категории D. ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pCarLicD] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"Pilots",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense Pilots [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали лицензию на полеты %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам лицензию на полеты.",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pFlyLic] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"sailing",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense sailing [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid)){
                                        if(giveplayerid != INVALID_PLAYER_ID){
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали лицензию на водный транспорт %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам лицензию на водный транспорт. ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pBoatLic] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
                        else if(strcmp(x_nr,"all",true) == 0){
                                tmp = strtok(cmdtext, idx);
                                if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense all [id_игрока/ЧастьИмени]");
                                giveplayerid = ReturnUser(tmp);
                                if(IsPlayerConnected(giveplayerid))
                                {
                                        if(giveplayerid != INVALID_PLAYER_ID)
                                        {
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                format(string, sizeof(string), "* Вы дали комплект лицензий(Рыбалка, вождение, лодки, оружие, летание) игроку %s.",giveplayer);
                                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                                format(string, sizeof(string), "* Админ %s дал вам комплект лицензий(Рыбалка, вождение, лодки, оружие, летание). ",sendername);
                                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                                PlayerInfo[giveplayerid][pBoatLic] = 1;
                                                PlayerInfo[giveplayerid][pCarLicA] = 1;
                                                PlayerInfo[giveplayerid][pCarLicB] = 1;
                                                PlayerInfo[giveplayerid][pCarLicC] = 1;
                                                PlayerInfo[giveplayerid][pCarLicD] = 1;
                                                PlayerInfo[giveplayerid][pFlyLic] = 1;return true;}}
                                else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}}
                else{SendClientMessage(playerid, COLOR_GREY, "Вы не админ! ");return true;}}return true;}
//==============================================================================
//Вставаить в public OnPlayerText(playerid, text[])
//==============================================================================
new sendername[MAX_PLAYER_NAME];
        new tmp[256];
        new string[256];
//        new giveplayerid;
        //Тестирование ПДД==============================================================
        if(DKT[playerid] > 0)
        {
                if(DKT[playerid] == 1)
                {
                        new idx;
                        tmp = strtok(text, idx);
                        if((strcmp("2", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2")))//Тут правильный ответ будет 2
                        {
                                SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
                                SetTimerEx("DKT3", 5000, 0, "d", playerid);
                                return 0;
                        }
                        else
                        {
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                TogglePlayerControllable(playerid,1);
                                SendClientMessage(playerid, COLOR_RED, " Неверно");
                                DKT[playerid] = 0;
                        }
                        return 0;
                }
                else if(DKT[playerid] == 2)
                {
                        new idx;
                        tmp = strtok(text, idx);
                        if((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))//Тут правильный ответ будет 1
                        {
                                SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
                                SetTimerEx("DKT4", 5000, 0, "d", playerid);
                                return 0;
                        }
                        else
                        {
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                SendClientMessage(playerid, COLOR_RED, " Неверно");
                                TogglePlayerControllable(playerid,1);
                                DKT[playerid] = 0;
                        }
                        return 0;
                }
                else if(DKT[playerid] == 3)
                {
                        new idx;
                        tmp = strtok(text, idx);
                        if((strcmp("3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("3")))//Тут правильный ответ будет 3
                        {
                                SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
                                SetTimerEx("DKT5", 5000, 0, "d", playerid);
                                return 0;
                        }
                        else
                        {
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                SendClientMessage(playerid, COLOR_RED, " Неверно");
                                TogglePlayerControllable(playerid,1);
                                DKT[playerid] = 0;
                        }
                        return 0;
                }
                else if(DKT[playerid] == 4)
                {
                        new idx;
                        tmp = strtok(text, idx);
                        if((strcmp("2/3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2/3")))//Тут правильный ответ будет 2 и 3
                        {
                                SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
                                SetTimerEx("DKT6", 5000, 0, "d", playerid);
                                return 0;
                        }
                        else
                        {
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                SendClientMessage(playerid, COLOR_RED, " Неверно");
                                TogglePlayerControllable(playerid,1);
                                DKT[playerid] = 0;
                        }
                        return 0;
                }
                else if(DKT[playerid] == 5)
                {
                        new idx;
                        tmp = strtok(text, idx);
                        if((strcmp("1/4", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1/4")))//Тут правильный ответ будет 1 и 4
                        {
                                SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                DKT[playerid] = 0;
                    SendClientMessage(playerid, COLOR_RED, "Скажи спасибо разработчику за подсказки :3");
                                SendClientMessage(playerid, COLOR_RED, "___________________________________");
                                SendClientMessage(playerid, COLOR_YELLOW, " Поздравляем! Вы успешно сдали тест на права");
                                SendClientMessage(playerid, COLOR_YELLOW, " Перейдём к практической части экзамена.");
                                pTestPDD[playerid] = 0;
                                TogglePlayerControllable(playerid,1);
                                PlayerInfo[playerid][pMoney] -= 5000;
                                TakingLesson[playerid] = 0;
                                if(TakingLesson[playerid] == 1)
                                {
                                        SendClientMessage(playerid, COLOR_GREY, "Урок уже начался!");
                                        return 1;
                                }
                                SendClientMessage(playerid, COLOR_GREEN, "Автосдача начата, выйдите на улицу и сядьте в автомобиль");
                                SendClientMessage(playerid, COLOR_YELLOW, "Инструктор:Нажмите Y чтобы открыть ворота!");
                                LessonStat[playerid] = 0;
                                LessonCar[playerid] = 1;
                                TakingLesson[playerid] = 1;
                        }
                        else
                        {
                                SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
                                TogglePlayerControllable(playerid,1);
                                SendClientMessage(playerid, COLOR_RED, " Неправильно");
                                DKT[playerid] = 0;
                        }
                        return 0;
                }
                return 0;
        }
        GetPlayerName(playerid,sendername,sizeof(sendername));
        format(string, sizeof(string), "%s говорит: %s", sendername,text);
        ProxDetector(20.0, playerid, string, COLOR_FADE1,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4);
        return 0;
//========================================================================================================
//Вставаить в OnPlayerEnterRaceCheckpoint(playerid)
new string[256];
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
        if(LessonCar[playerid] == 1)
        {
                switch(pLessonCar[playerid])
                {
                case CHECKPOINT_1:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_2;
                                SetPlayerRaceCheckpoint(playerid, 0,2232.0808,-2136.6714,21.4338,2314.4534,-2157.0847,21.4354, 5.0);
                        }
                case CHECKPOINT_2:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_3;
                                SetPlayerRaceCheckpoint(playerid, 0,2314.4534,-2157.0847,21.4354,2443.8726,-2158.4189,21.4341, 5.0);
                        }
                case CHECKPOINT_3:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_4;
                                SetPlayerRaceCheckpoint(playerid, 0,2443.8726,-2158.4189,21.4341,2468.6079,-1993.7078,21.4354, 5.0);
                        }
                case CHECKPOINT_4:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_5;
                                SetPlayerRaceCheckpoint(playerid, 0,2468.6079,-1993.7078,21.4354,2370.3406,-1872.0608,21.4353, 5.0);
                        }
                case CHECKPOINT_5:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_6;
                                SetPlayerRaceCheckpoint(playerid, 0,2370.3406,-1872.0608,21.4353,2304.1343,-1867.5062,21.4318, 5.0);
                        }
                case CHECKPOINT_6:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_7;
                                SetPlayerRaceCheckpoint(playerid, 0,2304.1343,-1867.5062,21.4318,2292.2390,-1806.7009,21.4335, 5.0);
                        }
                case CHECKPOINT_7:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_8;
                                SetPlayerRaceCheckpoint(playerid, 0,2292.2390,-1806.7009,21.4335,2360.7078,-1761.2458,23.7128, 5.0);
                        }
                case CHECKPOINT_8:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_9;
                                SetPlayerRaceCheckpoint(playerid, 0,2360.7078,-1761.2458,23.7128,2743.0493,-2157.4224,20.6347, 5.0);
                        }
                case CHECKPOINT_9:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_10;
                                SetPlayerRaceCheckpoint(playerid, 0,2743.0493,-2157.4224,20.6347,2680.7212,-2682.1331,24.8850, 5.0);
                        }
                case CHECKPOINT_10:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_11;
                                SetPlayerRaceCheckpoint(playerid, 0,2680.7212,-2682.1331,24.8850,2504.3936,-2682.4084,25.0838, 5.0);
                        }
                case CHECKPOINT_11:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_12;
                                SetPlayerRaceCheckpoint(playerid, 0,2504.3936,-2682.4084,25.0838,2308.8057,-2682.3015,24.8772, 5.0);
                        }
                case CHECKPOINT_12:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_13;
                                SetPlayerRaceCheckpoint(playerid, 0,2308.8057,-2682.3015,24.8772,1700.5945,-2682.2849,21.5855, 5.0);
                        }
                case CHECKPOINT_13:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_14;
                                SetPlayerRaceCheckpoint(playerid, 0,1700.5945,-2682.2849,21.5855,1597.9015,-2655.5798,23.3586, 5.0);
                        }
                case CHECKPOINT_14:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_15;
                                SetPlayerRaceCheckpoint(playerid, 0,1597.9015,-2655.5798,23.3586,1491.5271,-2465.2705,16.7380, 5.0);
                        }
                case CHECKPOINT_15:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_16;
                                SetPlayerRaceCheckpoint(playerid, 0,1491.5271,-2465.2705,16.7380,1750.0513,-2075.8474,23.3548, 5.0);
                        }
                case CHECKPOINT_16:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_17;
                                SetPlayerRaceCheckpoint(playerid, 0,1750.0513,-2075.8474,23.3548,1883.5763,-2020.7983,30.7537, 5.0);
                        }
                case CHECKPOINT_17:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_18;
                                SetPlayerRaceCheckpoint(playerid, 0,1883.5763,-2020.7983,30.7537,2018.3058,-2125.8318,21.3817, 5.0);
                        }
                case CHECKPOINT_18:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_19;
                                SetPlayerRaceCheckpoint(playerid, 0,2018.3058,-2125.8318,21.3817,2123.1370,-2155.6719,21.3825, 5.0);
                        }
                case CHECKPOINT_19:
                        {

                                GameTextForPlayer(playerid, string, 5000, 4);
                                LessonStat[playerid]++;
                                pLessonCar[playerid] = CHECKPOINT_20;
                                SetPlayerRaceCheckpoint(playerid, 0,2123.1370,-2155.6719,21.3825,2127.3125,-2209.3445,21.3865, 5.0);
                        }
                case CHECKPOINT_20:
                        {
                                new Float:health;
                                GetVehicleHealth(GetPlayerVehicleID(playerid),health);
                                if (health >= 850)
                                {
                                        JobCarTime[playerid] = 0;
                                        LessonCar[playerid] = 0;
                                        LessonStat[playerid] = 0;
                                        TakingLesson[playerid] = 0;
                                        PlayerInfo[playerid][pCarLicA] = 1;
                                        PlayerInfo[playerid][pCarLicB] = 1;
                                        PlayerInfo[playerid][pCarLicC] = 1;
                                        PlayerInfo[playerid][pCarLicD] = 1;
                                        DisablePlayerRaceCheckpoint(playerid);
                                        SendClientMessage(playerid, COLOR_GREEN, "Вы успешно сдали на права! Пожалуйста припаркуйте автомобиль!");
                                }
                                else
                                {
                                        SendClientMessage(playerid, COLOR_GRAD1, "Вы не достаточно хорошо водите, чтобы получить права");
                                        JobCarTime[playerid] = 0;
                                        LessonCar[playerid] = 0;
                                        LessonStat[playerid] = 0;
                                        TakingLesson[playerid] = 0;
                                }
                        }
                }
        }
}
//==============================================================================
//Вставить в public OnGameModeInit()
//========================================[АШ]==========================================
new nomer0, Text3D:nomeru0;
nomer0 = instcar[0] = AddStaticVehicleEx(502, 2138.8169, -2209.2642, 21.7243, 0.3185,3,1,150); //координаты для машин АШ
nomeru0 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru0, nomer0, 0.0, 0.0, 2.0 );
//
new nomer1, Text3D:nomeru1;
nomer1 = instcar[1] = AddStaticVehicleEx(502, 2134.6306, -2209.2603, 21.7243, 0.1969,3,1,150); //координаты для машин АШ
nomeru1 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru1, nomer1, 0.0, 0.0, 2.0 );
//
new nomer2, Text3D:nomeru2;
nomer2 = instcar[2] = AddStaticVehicleEx(494, 2130.4304, -2209.2188, 21.7243, 0.1969,3,1,150); //координаты для машин АШ
nomeru2 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru2, nomer2, 0.0, 0.0, 2.0 );
//
new nomer3, Text3D:nomeru3;
nomer3 = instcar[3] = AddStaticVehicleEx(494, 2126.1509, -2209.1458, 21.7243, 0.1969,3,1,150); //координаты для машин АШ
nomeru3 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru3, nomer3, 0.0, 0.0, 2.0 );
//=============================================================================================

//ВНИМАНИЕ ВНИМАНИЕ
//Это вставить в конец мода
CALLBACK: IsABoat(carid) // Лодки,а,коробли
{
        new model = GetVehicleModel(carid);
        if(model == 430 || model == 446 || model == 452 || model == 453 || model == 454 || model == 472 || model == 473 || model == 484 || model == 493 || model == 539){return true;}return false;
}
//==============================================================================
CALLBACK: IsAPlane(carid)// Самолёты,вертолёты
{
        new model = GetVehicleModel(carid);
        if(model == 417 || model == 425 || model == 447 || model == 460 || model == 469 || model == 476 || model == 487 || model == 488 || model == 497 || model == 511 || model == 512 || model == 513 || model == 519 || model == 520 || model == 548 || model == 553 || model == 563 || model == 577 || model == 592 || model == 593){return true;}return false;
}
IsACarA(carid)//Лицензии категории A
{
        new m = GetVehicleModel(carid);
        if(m==448||m==461||m==463||m==468||m==521||m==523||m==581||m==586||m==522)
        {
                return true;
        }
        return false;
}

IsACarB(carid)//Лицензии категории B
{
        new m = GetVehicleModel(carid);
        if(m==400||m==401||m==402||m==404||m==405||m==409||m==410||m==411||m==412||m==415||m==419
                        ||m==420||m==421||m==422||m==424||m==426||m==429||m==434||m==436||m==438||m==439||m==441
                        ||m==442||m==444||m==445||m==451||m==457||m==458||m==466||m==467||m==470||m==474||m==475
                        ||m==477||m==479||m==480||m==485||m==489||m==490||m==491||m==492||m==494||m==495||m==496
                        ||m==500||m==502||m==503||m==504||m==505||m==506||m==507||m==516||m==517||m==518||m==526
                        ||m==527||m==528||m==529||m==530||m==533||m==534||m==535||m==536||m==540||m==541||m==542
                        ||m==543||m==545||m==546||m==547||m==549||m==550||m==551||m==554||m==555||m==556||m==557
                        ||m==558||m==559||m==560||m==561||m==562||m==565||m==566||m==567||m==568||m==571||m==575
                        ||m==576||m==579||m==580||m==585||m==587||m==596||m==597||m==598||m==599||m==600||m==602
                        ||m==603||m==604||m==605)
        {
                return true;
        }
        return false;
}

IsACarC(carid)//Лицензии категории C
{
        new m = GetVehicleModel(carid);
        if(m==403||m==406||m==407||m==408||m==416||m==427||m==428||m==433||m==435||m==443||m==455||m==456||m==478||m==486||m==514||m==515||m==524||m==532||m==531||m==544
                        ||m==569||m==573||m==578||m==583||m==584||m==590||m==591||m==606||m==607||m==608||m==610||m==432||m==611)
        {
                return true;
        }
        return false;
}
IsACarD(carid)//Лицензии категории D
{
        new m = GetVehicleModel(carid);
        if(m==418||m==431||m==437||m==449||m==459||m==482||m==483||m==414||m==413||m==498||m==437||m==438)
        {
                return true;
        }
        return false;
}

IsACarDriving(carid)
{
        new model = GetVehicleModel(carid);
        if(model == 509 || model == 481 || model == 510|| model == 592 || model == 577 || model == 511
                        || model == 512 || model == 593 || model == 520 || model == 553|| model == 476 || model == 519
                        || model == 460 || model == 513 || model == 548 || model == 425 || model == 417|| model == 487
                        || model == 488 || model == 497 || model == 563 || model == 447 || model == 469|| model == 430
                        || model == 446 || model == 452 || model == 453 || model == 454 || model == 472|| model == 473
                        || model == 484 || model == 493 || model == 539 || model == 595)
        {
                return true;
        }
        return false;
}

//Тестирование ПДД==============================================================
CALLBACK: IO1(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "[Введение]");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_GREEN, "Приветствуем вас в нашей Автошколе г.Южный! Добро пожаловать!");
        SendClientMessage(playerid, COLOR_GREEN, "В данной автошколе вы можете обучится вождению на все виды транспорта.");
        SendClientMessage(playerid, COLOR_GREEN, "У нас есть 2 способа сдачи на водительские права: Теория+Практика и Экстерн.");
        SendClientMessage(playerid, COLOR_GREEN, "Вы предпочли: Экстерн. Пожалуйста прочтите и ознакомьтесь с инструктажем!");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO2(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "[Управление скоростью]");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_GREEN, "Управление скоростью очень важно, так превышение скорости может привести к потере");
        SendClientMessage(playerid, COLOR_GREEN, "управляемости и возможной потере жизни. Это увеличивает");
        SendClientMessage(playerid, COLOR_GREEN, "возможность попадания в аварию. Очень важно набрать скорость, которая подходит");
        SendClientMessage(playerid, COLOR_GREEN, "к текущим условиям (или вы на шоссе или едете по гравию). Не слишком быстро и не слишком медленно.");
        SendClientMessage(playerid, COLOR_YELLOW2, " ");
}
CALLBACK: IO3(playerid)
{
        SendClientMessage(playerid, COLOR_GREEN, "Также важно не разговаривать по телефону с подружкой и не набирать СМСку, когда");
        SendClientMessage(playerid, COLOR_GREEN, "ведёте авто.Это также увеличивает возможность попадания в аварию");
        SendClientMessage(playerid, COLOR_GREEN, "пожалуйста, останавливайтесь, когда хотите поговорить по телефону или набрать СМС.");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO4(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "[Дорожные знаки]");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_GREEN, "Белая линия после барьеров означает, что здесь запрещена");
        SendClientMessage(playerid, COLOR_GREEN, "стоянка всегда, здесь всегда должно быть свободное место. Это также");
        SendClientMessage(playerid, COLOR_GREEN, "означает запрет остановки, кроме случаев критического состояния здоровья. Вам разрешено");
        SendClientMessage(playerid, COLOR_GREEN, "остановиться здесь только в том случае, если этого от вас требует полицейский.");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO5(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "[Дорожные правила]");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_GREEN, "На четырёхполосной дороге (по 2 полосы на каждый путь) вам");
        SendClientMessage(playerid, COLOR_GREEN, "разрешено находиться на левой полосе только при обгоне другого");
        SendClientMessage(playerid, COLOR_GREEN, "транспортного средства либо при повороте влево в пределах 100 метров");
        SendClientMessage(playerid, COLOR_GREEN, "Вас ждёт уголовная ответственность за нахождение на этой полосе в других случаях.");
        SendClientMessage(playerid, COLOR_YELLOW2, " ");
}
CALLBACK: IO6(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "Окончание информационного курса.");
        SendClientMessage(playerid, COLOR_YELLOW, "Мы надеемся, что вы обратили на это внимание, так как теперь вам предстоит ответить на несколько вопросов!");
        SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
        SetTimerEx("DKT1", 5000, 0, "d", playerid);
}
CALLBACK: DKT1(playerid)
{
        SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать в тест для водителей.");
        SendClientMessage(playerid, COLOR_NEWS, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_NEWS, "В тесте, вам будет задано несколько вопросов, чтобы проверить ваши знания");
        SendClientMessage(playerid, COLOR_NEWS, "по темам, которые были рассмотрены в теоретическом курсе безопасного вождения.");
        SendClientMessage(playerid, COLOR_NEWS, "Если вы ответите неправильно, вы провалите тест, но мы не будем штрафовать вас.");
        SendClientMessage(playerid, COLOR_NEWS, "---------------------------------------------------------------------------------------------------");
        SendClientMessage(playerid, COLOR_NEWS, "Чтобы ответить на вопрос, просто напишите номер правильного ответа.");
        SendClientMessage(playerid, COLOR_NEWS, "Если вопрос содержит два ответа, вы будете уведомлены об этом");
        SendClientMessage(playerid, COLOR_NEWS, "Чтобы написать 2 ответа, если ответы были 1 и 2, напишите: 1/2");
        SetTimerEx("DKT2", 20000, 0, "d", playerid);
}
CALLBACK: DKT2(playerid)
{
        DKT[playerid] = 1;
        SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 1]____________________|");
        SendClientMessage(playerid, COLOR_YELLOW, "Если на улице с двухсторонним движением Вы услышите сирену спец. автомобиля, Вы должны:");
        SendClientMessage(playerid, COLOR_YELLOW, "1: Ускорить движение и освободить дорогу.");
        SendClientMessage(playerid, COLOR_YELLOW, "2: Прижаться на сколько можно вправо и остановиться.");
        SendClientMessage(playerid, COLOR_YELLOW, "3: Дать сигнал для обгона Вашей машины.");
        SendClientMessage(playerid, COLOR_YELLOW, "4: Продолжить движение с прежней скоростью.");
        SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
        SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:2");
        SendClientMessage(playerid, COLOR_RED, " ");
        SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT3(playerid)
{
        DKT[playerid] = 2;
        SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 2]____________________|");
        SendClientMessage(playerid, COLOR_YELLOW, "На дороге с двухсторонним движением перед правым поворотом Вы должны занять позицию:");
        SendClientMessage(playerid, COLOR_YELLOW, "1: С правой стороны дороги.");
        SendClientMessage(playerid, COLOR_YELLOW, "2: С левой стороны дороги.");
        SendClientMessage(playerid, COLOR_YELLOW, "3: С правой стороны от разделительной полосы.");
        SendClientMessage(playerid, COLOR_YELLOW, "4: Не имеет значения, где остановиться. Водитель подал сигнал поворота.");
        SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
        SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:1");
        SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT4(playerid)
{
        DKT[playerid] = 3;
        SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 3]____________________|");
        SendClientMessage(playerid, COLOR_YELLOW, "Почему опасно использование телефона во время движения?");
        SendClientMessage(playerid, COLOR_YELLOW, "1: Набор СМС во время вождения может причинить воспаление пальцев на руках.");
        SendClientMessage(playerid, COLOR_YELLOW, "2: Разговор по телефону во время движения может причинить сбой связи.");
        SendClientMessage(playerid, COLOR_YELLOW, "3: Разговор по телефону во время движения может обернуться аварией.");
        SendClientMessage(playerid, COLOR_YELLOW, "4: Это совсем не опасно.");
        SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
        SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:3");
        SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT5(playerid)
{
        DKT[playerid] = 4;
        SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 4]____________________|");
        SendClientMessage(playerid, COLOR_AMDRED, "[Примечание]: Здесь 2 ответа!");
        SendClientMessage(playerid, COLOR_YELLOW, "Что означает белая линия рядом с барьером?");
        SendClientMessage(playerid, COLOR_YELLOW, "1: Запрещён поворот направо.");
        SendClientMessage(playerid, COLOR_YELLOW, "2: Запрещена парковка в любое время.");
        SendClientMessage(playerid, COLOR_YELLOW, "3: Запрещена остановка, кроме случаев критическоо состояния здоровья.");
        SendClientMessage(playerid, COLOR_YELLOW, "4: Это ничего не значит.");
        SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
        SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:2/3");
        SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT6(playerid)
{
        DKT[playerid] = 5;
        SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 5]____________________|");
        SendClientMessage(playerid, COLOR_AMDRED, "[Примечание]: Здесь 2 ответа!");
        SendClientMessage(playerid, COLOR_YELLOW, "Когда вам разрешено находиться на левой полосе, если дорога имеет 4 полосы (по 2 на каждый путь)?");
        SendClientMessage(playerid, COLOR_YELLOW, "1: Ожидается поворот налево в пределах 100 метров.");
        SendClientMessage(playerid, COLOR_YELLOW, "2: Госпиталь в пределах 150 метров.");
        SendClientMessage(playerid, COLOR_YELLOW, "3: Всегда.");
        SendClientMessage(playerid, COLOR_YELLOW, "4: При обгоне другого транспортного средства.");
        SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
        SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:1/4");
        SendClientMessage(playerid, COLOR_RED, "");
}

CALLBACK: OnPlayerExitVehicle(playerid, vehicleid)
{
        SaveCar(vehicleid);
        StopAudioStreamForPlayer(playerid);
        //
        test1[playerid] = 0;
        seatbelt[playerid] = 0;
        dvig[playerid] = 0;
        DisableAll(playerid);
        if(TakingLesson[playerid] == 1)
        {
                SendClientMessage(playerid, COLOR_RED, "Автосдача прекращена, вы покинули автомобиль");
                DisablePlayerRaceCheckpoint(playerid); CPL[playerid] = 0;
                TakingLesson[playerid] = 0;
                SetVehicleToRespawn(GetPlayerVehicleID(playerid));
                return 1;
        }
        return true;
}
stock DisableAll(playerid){SetCameraBehindPlayer( playerid );DestroyObject( Player[playerid][camobj] );return true;}


 

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

  • Похожий контент

    • Helados
      От Helados
      Короче, мы протестировали наш GTA на другом хостинге — голосовой чат там работает, всё включается нормально. Также проверили на другом хостинге с нашим игровым модом — voice chat тоже работает.
      Но на нашем личном хостинге, который мы купили на OVH и установили панель, не получается запустить голосовой чат. Похоже, проблема связана с портами. После перезапуска сервер почему-то случайным образом выбирает порты сам и мы не можем это исправить.
      Если кто-то знает человека, который может помочь разобраться с этой проблемой, буду благодарен.
    • тимормо
      От тимормо
      Копия Diamond RP (основа State 99)
      Скачать файл Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
      Добавил тимормо Добавлено 07/15/26 Категория Моды Автор #TomSnow  
    • тимормо
      От тимормо
      Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
    • x4reo
      От x4reo
      EPOCH ROLE PLAY | ВОЗВРАЩЕНИЕ В 90-Е Создаем атмосферный Full RP проект без «фарма» и лишней «дичи»     О ПРОЕКТЕ Epoch Role Play — это площадка для тех, кто ценит качество, а не статистику. Мы строим живой мир, где каждое действие имеет последствия, а экономика строится на социальном взаимодействии.   КОГО МЫ ИЩЕМ? • Lead Developer (Pawn/C#/JS): Создание ядра мода, БД, оптимизация. • Mapper/Level Designer: Создание аутентичных интерьеров 90-х. • Game Designer: Проработка ролевых правил и сценариев. • SMM-менеджер: Ведение соцсетей, создание контента. • Дизайнер: Оформление медиа и UI проекта. • Discord-архитектор: Настройка каналов и безопасности. • Web-разработчик: Сайт и форум проекта. • Bot-developer (VK/TG): Безопасность: 2FA, привязка аккаунтов.   НАШИ УСЛОВИЯ 1. Энтузиазм: Проект стартует без бюджета. Мы ищем единомышленников. 2. Соавторство: Каждый участник — полноценный совладелец проекта. 3. Партнерство: Вся прибыль от монетизации распределяется пропорционально вкладу.     КОНТАКТЫ ДЛЯ СВЯЗИ Telegram: x4reoo