Question

Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

Вот енумы:
 


#define MAX_HOUSES 1000
#define MAX_BIZS 1000

enum house
{
        hID,
        STREAMER_TAG_PICKUP:hPICKUP,
        STREAMER_TAG_AREA:hAREA,
        hOWNER[MAX_PLAYER_NAME],
        STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],
        STREAMER_TAG_MAP_ICON:hICON,
        hPRICE,
        hCLASS,
        hINTERIOR,
        Float:hX,
        Float:hY,
        Float:hZ,
        Float:hA,
        hCONDITION // Закрыт/Открыт
}
new House[MAX_HOUSES][house];
new Houses;
new HouseGroup;

enum biz
{
        bID,
        STREAMER_TAG_PICKUP:bPICKUP,
        STREAMER_TAG_AREA:bAREA,
        bOWNER[MAX_PLAYER_NAME],
        STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],
        STREAMER_TAG_MAP_ICON:bICON,
        bNAME[25],
        bPRICE,
        bTYPE,
        bINTERIOR,
        Float:bX,
        Float:bY,
        Float:bZ,
        Float:bA
}
new Biz[MAX_BIZS][biz];
new Bizs;
new BizGroup;

enum interior_info
{
        intID,
        intNAME[41],
        intINTERIOR,
        Float:intX,
        Float:intY,
        Float:intZ,
        Float:intA,
        STREAMER_TAG_AREA:intAREA
}
new Interior[MAX_INTERIORS][interior_info];
new Interiors;
new InteriorGroup;

Вот что у меня в OnGameModeInit:

HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter);
InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit);
BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);

 

Вот стоки:

GAResponse:HouseEnter(playerid, response, key, index)
{
        switch(response)
        {
            case GA_RESPONSE_PRESS_KEY:
            {
                if(key & KEY_WALK)
                {
                if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)
                {
                                        GoToInterior(playerid, House[index][hINTERIOR]);
                                        SetPlayerVirtualWorld(playerid, index);
                                }
                                else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");
                        }
                }
                case GA_RESPONSE_ENTER:
                {
                    if(House[index][hOWNER] == 0)
                    {
                        CreateNoOwnerHouseTD(playerid);
                        for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)
                        {
                            PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);
                                }
                                new price[8];
                                format(price, sizeof(price), "%d$", House[index][hPRICE]);
                                PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);
                                new id[9];
                                format(id, sizeof(id), "%d", House[index][hID]);
                                PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);
                                switch(House[index][hCLASS])
                                {
                                    case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");
                                    case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");
                                    case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");
                                }
                                for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)
                        {
                            TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);
                                }
                        }
                }
                case GA_RESPONSE_LEAVE:
                {
                for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)
                {
                    PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);
                        }
                        for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)
                {
                    TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);
                        }
                }
        }
        return 1;
}

GAResponse:BizArea(playerid, response, key, index)
{
        switch(response)
        {
            case GA_RESPONSE_PRESS_KEY:
            {
                if(key & KEY_WALK)
                {
                    GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);
                                SetPlayerVirtualWorld(playerid, index);
                }
                }
        }
        return 1;
}

GAResponse:InteriorExit(playerid, response, key, index)
{
        switch(response)
        {
            case GA_RESPONSE_PRESS_KEY:
            {
                new world = GetPlayerVirtualWorld(playerid);
                if(key & KEY_WALK)
                {
                    if(world < MAX_HOUSES)
                    {
                        SetPlayerInterior(playerid0);
                            SetPlayerVirtualWorld(playerid, 0);
                            SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);
                            SetPlayerFacingAngle(playerid, House[world][hA]);
                                }
                                else if(world < MAX_HOUSES + MAX_BIZS)
                    {
                        world -= MAX_HOUSES;
                                        printf("%d index world", world);
                        SetPlayerInterior(playerid0);
                            SetPlayerVirtualWorld(playerid, 0);
                            SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);
                            SetPlayerFacingAngle(playerid, Biz[world][bA]);
                                }
                        }
                        if(key & KEY_CTRL_BACK)
                        {
                            if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");
                            new dialog[256];
                                format(dialog, sizeof(dialog),
                                        "{ffd900}[1]{ffffff}Информация о доме\n\
                                        {ffd900}[2]{ffffff}%s дом",
                                (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));
                            SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать""Закрыть");
                            return 1;
                        }
                }
        }
        return 1;
}

stock GoToInterior(playerid, interior)
{
    for(new i = 0; i < Interiors; i++)
        {
            if(Interior[i][intID] != interior) continue;
            SetPlayerInterior(playerid, Interior[i][intINTERIOR]);
            SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);
            SetPlayerFacingAngle(playerid, Interior[i][intA]);
            SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);
            new str[128];
            format(str, sizeof(str),
                        "Нажмите \"ALT\" для выхода\n\
                        Нажмите \"H\", чтобы открыть меню дома");
            Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.001);
            return 1;
        }
        return 0;
}

stock GoToInteriorBiz(playerid, interior)
{
    for(new i = 0; i < Interiors; i++)
        {
            if(Interior[i][intID] != interior) continue;
            SetPlayerInterior(playerid, Interior[i][intINTERIOR]);
            SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);
            SetPlayerFacingAngle(playerid, Interior[i][intA]);
            SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);
            new str[128];
            format(str, sizeof(str),
                        "Нажмите \"ALT\" для выхода");
            Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.001);
            return 1;
        }
        return 0;
}

 

 

Что мне делать, подскажите пожалуйста?

Share this post


Link to post

1 answer to this question

  • 0

@Chopick Привет, я хочу помогать бесплатно я такойже новичек в этом деле, давайте  я помогу, но обьясните сперва. Что это CRMP или SAMP и какая версия. Я практик, делаю методом проб и ошибок. 

 

@Chopick У меня сейчас еще не скачена игра и не настроен павн, я займусь этим. Можете пока забыть о своей проблеме, я постараюсь что-нибудь сделать, займитесь чем - нибудь еще. Но Вам придётся подождать

 

@Chopick Я скобку в лево убрал, не знаю это повлияет или нет. Я практик, мне нужен мод и самому разбирать. Я попробую вставить код этот себе, но не знаю зарабоает он или нет. Подправте скобочку как у меня, может из-за неё? Но что-то сомниваюсь

GAResponse:BizArea(playerid, response, key, index)
{
        switch(response)
        {
            case GA_RESPONSE_PRESS_KEY:
            {
                if(key & KEY_WALK)
                {
                    GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);
                                SetPlayerVirtualWorld(playerid, index);
                }
            }
        }
        return 1;
}

Заметка от Cawfee , создано

Поставил вас на премодерацию.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • CRMP_TRUCK
      By CRMP_TRUCK
      CRMP TRUCK 0.3E
      Скачать файл Мод в жанре дальнобойщики основа PPC_Trucking sa:mp
       
      Система грузоперевозок около 30 наименований груза.
      Примерно 70 точек загрузки разгрузки на всей карте.
       
      Система Транспортных компаний Можно нанимать водителей покупать личный рабочий транспорт для сотрудников относиться ко всем работам(такси,автобус,эвакуатор,дальнобойщики) при работе в ТК увеличивается Зарплата так же идет бонус на банк компании.
       
      Работа таксиста можно взять рандомный заказ так же и выбрать местоположение.
       
      Дорожный рабочий (эвакуатор) Привозить транспорт на металлом
       
      Водитель автобуса 2 маршрута в Арзамасе.
       
      Работа машиниста поезда находятся в Южном.
       
      Простая система инвентаря /inv или же Y.
       
      Основные команды /cmds /help 
       
      В бизнесе Автомагазин запчасти в дорогу другие важные вещи в 24/7 
       
      Игровое время как в сингле + дни недели.
       
      Простая система голода
       
      Система гаражей в гараже вы можете купить станок производить запчасти и продавать на заводе в южном 
       
      Так же в гараже можно купить личный транспорт и рабочий.
       
      Простая система угона.
       
      Система полиции игрок получает ЗВ за перегруз угон убийство одна зв снимается каждый новый день игровой в 9:00 так же зв можно снять в церкви рандомно бизнес церковь.
       
      Система банка (переводы,снятие,депозит)Каждый игровой понедельник приходит процент с банка 1 процент от суммы не зависимо онлайн или нет игрок.
       
      Система бизнесов с пассивным доходом каждые новые игровые сутки приходит пассивный доход + от типа бизнеса кто что в нем купил финка+ 
       
      Простая система домов 4 интерьера на выбор.
       
      Мод разбит на инклуды.
      Мод на mxini и обычная файловая система.
      Команды zcmd.
      Античит от Nexus адаптирован под 0.3e
       
      В папке архивом лежит чистый скриптфайлс.
       
      Карта в инклудах MAP.. загружается в виде FS MAP.
       
      Автор: CRMP_TRUCK
      Max_King перевод и прочая помощь. 
       
      Добавил CRMP_TRUCK Добавлено 28.12.2024 Категория Моды Автор Crmptruck  
    • DAYREK
      By DAYREK
      Приветствую, подготовили для вас игровой сайт. Все сделано с нуля.
       
      В систему входит:
      - Главная страница.
      - Магазин.
      - Новости.
      - Личный кабинет.
      Все системы работают, в личном кабинете отображаются данные о игроке, имущество, статистика и прочее, добавите туда по своему желанию еще что-нибудь.

      Основные языки системы:
      - HTML, CSS, JS, PHP
      База данных MySQL
       
      Если я увижу потенциал в данном сайте, буду выпускать обновления. Добавлю систему ЛК для администратора, с отслеживанием логов админов и игроков.
      Изменением настроек сервера и сайта, изменение темы сайта и прочее.

      Связь со мной тык

       
       
    • bogdan@gmail
      By bogdan@gmail
      Как исправить взрыв при создание тс через мод тоесть припосав его там создавая спавн авто