Вопросы

Nestor_Matroskin
Новичок

Привествуйю, такая ситуация что я создаю проект, взял мод но там нету домов их нужно создать, создавал я дома через команду и в итоге всьо хорошо наченалось, но когда например купил дом №1 зашол в него и вышел то всьо хорошо, а когда ты например купил и зашол в дом №8 или в любой другой то выходиш ти через дом №1 я не знаю уже что искать в моде.Помогите

Вот нашол строки где именно диалог выхода из дома
 

        for(new h = 0; h < TotalHouses; h++)
        {
            if(PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ]) && GetPlayerVirtualWorld(playerid) == HOUSE_DATA[h][data_ID])
            {
                SetPVarInt(playerid, "house", h);
                ShowPlayerDialogFix(playerid, dialog_EXIT_HOUSE, DIALOG_STYLE_MSGBOX, "{FFCC00}Дом""{FFFFFF}Вы желаете покинуть дом?""Выйти""Отмена");
                return true;
            }
        }

А вот уже сам диалог вихода
 

case dialog_EXIT_HOUSE:
        {
            if(!response) return true;
            if(response)
            {
                new h = GetPVarInt(playerid, "house");
                if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ])) return true;
                SetPlayerPosAC(playerid,HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ]);
                SetPlayerInterior(playerid,0);
                SetPlayerVirtualWorld(playerid,0);
                
                FreezePlayer(playerid);
                SetTimerEx("UnfreezePlayer"4000false"d", playerid);
            }
        }

 

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


Ссылка на сообщение

3 ответа на этот вопрос

  • 0
Sleash
Завсегдатый

@Nestor_Matroskin 

        case dialog_EXIT_HOUSE:
        {
            if(!response) return true;
            if(response)
            {
                new h = GetPVarInt(playerid, "house");
                if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ]) || \
                GetPlayerVirualWorld(playerid) != HOUSE_DATA[h][data_ID]) return true;
                SetPlayerPosAC(playerid,HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ]);
                SetPlayerInterior(playerid,0);
                SetPlayerVirtualWorld(playerid,0);
                
                FreezePlayer(playerid);
                SetTimerEx("UnfreezePlayer"4000false"d", playerid);
            }
        }

 

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


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

В диалоге 

dialog_EXIT_HOUSE

При проверке координат выхода нет проверки на ВВ, вот в коде:

if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ])) return true;

// Как видим, проверка только на координаты, так же добавим и на Виртуальный Мир:
if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ]) || \
 GetPlayerVirtualWorld(playerid) != HOUSE_DATA[h][data_ID]) return true;
 // тут уже добавлена проверка на ВВ

 

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


Ссылка на сообщение
  • 0
Nestor_Matroskin
Новичок

@Sleash`en Вот нашол строки где именно диалог выхода из дома

        for(new h = 0; h < TotalHouses; h++)
        {
            if(PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ]) && GetPlayerVirtualWorld(playerid) == HOUSE_DATA[h][data_ID])
            {
                SetPVarInt(playerid, "house", h);
                ShowPlayerDialogFix(playerid, dialog_EXIT_HOUSE, DIALOG_STYLE_MSGBOX, "{FFCC00}Дом""{FFFFFF}Вы желаете покинуть дом?""Выйти""Отмена");
                return true;
            }
        }

А вот уже сам диалог вихода
 

13 часов назад, Sleash`en сказал:

В диалоге 


dialog_EXIT_HOUSE

При проверке координат выхода нет проверки на ВВ, вот в коде:


if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ])) return true;

// Как видим, проверка только на координаты, так же добавим и на Виртуальный Мир:
if(!PlayerToPoint(1.5, playerid, HOUSE_DATA[h][data_EXITX], HOUSE_DATA[h][data_EXITY], HOUSE_DATA[h][data_EXITZ]) || \
 GetPlayerVirtualWorld(playerid) != HOUSE_DATA[h][data_ID]) return true;
 // тут уже добавлена проверка на ВВ

Извиняюсь но ето не помогло, получается когда другой класс или еще что-то тогда да но когда создать один класс всьоравно

 

 

вот диалог создание домов
 

        case dialog_ADD_HOUSE:
        {
            if(!response) return true;
            if(response)
            {
                SetPVarInt(playerid,"addhouse",1);
                new Float:X,Float:Y,Float:Z;
                GetPlayerPos(playerid, X,Y,Z);
                new veh = CreateVehicle(402, X,Y,Z, 0.011, -1);
                PutPlayerInVehicleAC(playerid, veh, 0);
                CAR_DATA[veh][data_ENG] = 0;
                SendClientMessage(playerid,-1"Сядьте в машину и введите /tpc для сохранения позиции автомобиля");
            }
        }
        case dialog_ADD_HOUSE_1:
        {
            if(!response) return SetPVarInt(playerid, "addhouse",0);
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        SetPVarFloat(playerid,"aExitX",242.0182);
                        SetPVarFloat(playerid,"aExitY",-137.7568);
                        SetPVarFloat(playerid,"aExitZ",998.9108);
                        SetPVarInt(playerid,"aInt",1);
                    }
                    case 1:
                    {
                        SetPVarFloat(playerid,"aExitX",2594.2136);
                        SetPVarFloat(playerid,"aExitY",-44.5393);
                        SetPVarFloat(playerid,"aExitZ",601.0859);
                        SetPVarInt(playerid,"aInt",2);
                    }
                }
                ShowPlayerDialogFix(playerid, dialog_ADD_HOUSE_2, DIALOG_STYLE_INPUT, "{FFCC00}Цена дома""{FFFFFF}От 10 000 рублей до 10 000 000 рублей""Добавить""Отмена");
            }
        }
                    
        case dialog_ADD_HOUSE_2:
        {
            if(!response) return SetPVarInt(playerid, "addhouse",0);
            if(response)
            {
                if(strval(inputtext) < 10000 || strval(inputtext) > 10000000return ShowPlayerDialogFix(playerid, dialog_ADD_HOUSE_3, DIALOG_STYLE_INPUT, "{FFCC00}Цена дома""{FFFFFF}От 10 000 рублей до 10 000 000 рублей""Добавить""Отмена");
                SetPVarInt(playerid,"aPrice",strval(inputtext));
                ShowPlayerDialogFix(playerid, dialog_ADD_HOUSE_3, DIALOG_STYLE_INPUT, "{FFCC00}Класс""{FFFFFF}Введите класс дома 0,1,2,3,4""Добавить""Отмена");
            }
        }
        case dialog_ADD_HOUSE_3:
        {
            if(!response) return true;
            if(response)
            {
                SetPVarInt(playerid,"aClass",strval(inputtext));
                AddHouse(playerid);
            }
        }

СТОК создания
 

stock AddHouse(playerid)
{
    new query[600];
    new h = TotalHouses;
    new Float:a1 = GetPVarFloat(playerid, "aEnterX");
    new Float:a2 = GetPVarFloat(playerid, "aEnterY");
    new Float:a3 = GetPVarFloat(playerid, "aEnterZ");
    new Float:a4 = GetPVarFloat(playerid, "aExitX");
    new Float:a5 = GetPVarFloat(playerid, "aExitY");
    new Float:a6 = GetPVarFloat(playerid, "aExitZ");
    new a7 = GetPVarInt(playerid, "aInt");
    new a8 = GetPVarInt(playerid, "aClass");
    new a9 = GetPVarInt(playerid, "aPrice");
    new Float:a10 = GetPVarFloat(playerid, "aCarX");
    new Float:a11 = GetPVarFloat(playerid, "aCarY");
    new Float:a12 = GetPVarFloat(playerid, "aCarZ");
    new Float:a13 = GetPVarFloat(playerid, "aCarAngle");
    SetPVarInt(playerid,"addhouse"0);
    SendClientMessage(playerid,-1"Дом добавлен");
    HOUSE_DATA[h][data_ENTERX] = a1;
    HOUSE_DATA[h][data_ENTERY] = a2;
    HOUSE_DATA[h][data_ENTERZ] = a3;
    HOUSE_DATA[h][data_EXITX] = a4;
    HOUSE_DATA[h][data_EXITY] = a5;
    HOUSE_DATA[h][data_EXITZ] = a6;
    HOUSE_DATA[h][data_INT] = a7;
    HOUSE_DATA[h][data_CLASS] = a8;
    HOUSE_DATA[h][data_PRICE] = a9;
    HOUSE_DATA[h][data_CARX] = a10;
    HOUSE_DATA[h][data_CARY] = a11;
    HOUSE_DATA[h][data_CARZ] = a12;
    HOUSE_DATA[h][data_CARANGLE] = a13;
    if(HOUSE_DATA[h][data_OWNED] == 0)
    {
        HOUSE_DATA[h][data_PICKUPENTER] = CreateDynamicPickup(127323, HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ],-1);
        HOUSE_DATA[h][data_MAPICON] = CreateDynamicMapIcon(HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ], 31, -10, -1, -1200.0);
    }
    else
    {
        HOUSE_DATA[h][data_PICKUPENTER] = CreateDynamicPickup(1913123, HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ],0);
        HOUSE_DATA[h][data_MAPICON] = CreateDynamicMapIcon(HOUSE_DATA[h][data_ENTERX], HOUSE_DATA[h][data_ENTERY], HOUSE_DATA[h][data_ENTERZ], 32, -10, -1, -1200.0);
    }
    TotalHouses++;
    mysql_format(dbHandle,query, sizeof query, "INSERT INTO `houses` ( `enterx`, `entery`, `enterz`, `exitx`, `exity`, `exitz`, `carx`, `cary`, `carz`, `cara`, `int`, `class`, `price`) VALUES ( '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d')",a1,a2,a3,a4,a5,a6,a10,a11,a12,a13,a7,a8,a9);
    mysql_function_query(dbHandle, query, false"""");
    return true;
}

 

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба