Вопросы

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;
            }
        }

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

  В 3/16/2022 в 20:41, 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 пользователей онлайн

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

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

    • KAIF HOST
      От KAIF HOST
      Если вы ищете надежный, стабильный и бюджетный хостинг для ваших серверов SAMP или CRMP, то KAIF-HOST.RU - лучший выбор для вас. Мы молодая компания среди игровых хостингов, но мы гарантируем стабильность и безопасность вашего сервера.
       
      Мы предлагаем защиту от TCP SYN и UDP флуда, а также от Spoofing атак. Мы также обеспечиваем защиту на уровнях L3, L4 и L7.
       
      Наши преимущества включают автоподнятие серверов после падения, удобную панель управления сервером и автоматическую установку сервера. Мы также гарантируем быструю техническую поддержку для всех наших клиентов.
       
       
       
      Наши серверы доступны всего от 20 рублей в месяц, что делает нас одним из самых доступных хостингов на рынке.
       
       
       
       
       
       Ссылки:
       
      Сайт kaif-host.ru
      Панель управления lk.kaif-host.ru
      Группа ВКонтакте https://vk.com/kaif_host_official
       
      P.s Промокод #pawnorus даст тебе скидку в размере 20%

    • watson
      От watson


      Скачать файл Florida Role Play | (Бонусный)
      Список доработок/изменений:

      1. Исправлены дыры с рублями, падением мода
      2. Новый античит(/ac)
      3. Аренда вертолетов (/gps - аренда транспорта - аренда вертолетов)
      4. Добавлена система /goadminka (раздача админки при определённом онлайне)
      5. Обновленны интерьеры банд, СМИ, ПД, выбор скина, домов, магазинов
      6. Изменён экстерьер парка у мэрии, на против больницы
      7. Изменен текстдрав Логотипа, выбор скина, спидометра, дм арены, капта
      8. Вместо мопедов сделаны пикапы аренды
      9. Добавлена система VIP (Бронза, Серебро, Золото и Верона)
      10. Изменена система семей
      11. Добавлен чат для випов (/vc)
      12. При попытки проследить за ботом, перекидывает за игрока
      13. Добавлено казино, в котром можно играть на донат и рубли
      14. Добавлена система дуэлей
      15. Добавлены команды: /security, /checkfull и /fonline
      16. Изменён бот для авто-инвайта
      17. Изменена система дм зон (отличается от дуэлей)
      18. Доработана система статистики администратора, добавлено время администрирования в /admins
      19. Добавлен премиум меню для Verona PREMIUM
      20. Добавлены карты для /tp - Мероприятия
      21. Добавлена статистика лидера, изменена /lmenu
      22. Добавлена покупка аксессуаров в /donate
      23. Добавлена команда /obj
      24. Перераспределил команды для админов
      25. При наличии 1000 рублей или большой суммы виртов у игрока появляется кейс
      26. Исправлены баги со спавном банд
      27. Исправлены баги с падением под текстуры
      28. Исправлен баг с виртуальными мирами
      29. Добавлен NPC авто-инвайт на спавн
      30. Добавлен NPC проведения дуэлей
      31. Исправлена команда /banip
      32. Изменена и доделана система от сливов
      33. Возможность добавить своих ботов (+ уже встроены в мод)
      34. Доработана система мероприятий
      35. Переработана система доната (/donaterub and /donate)
      36. Обновлены плагины, почищена БД
      37. Новые артефакты
      38. Новый спавн
      39. Новая аренда
      40. Автоинвайт в мэрии
       
      UPD: Понизил ценник на мод
      Добавил watson Добавлено 14.02.2022 Категория Моды Автор Angel Sinvays  
    • Доналдо Фарекелка
      От Доналдо Фарекелка


      Скачать файл Christmas Live » RPG | XS
      Приветствую, сливаю мод, который делал самолично. Мод недоработан, возможно где-то имеются баги, без лаунчера.
      Взят под основу от Phantom RolePlay. Отдельная благодарность за мод WW.INC
      Основная информация про мод:
       
      Информация про сервер:
      Записка:
      ПРИМЕР -  скриншот, сделанный для показа чего-либо и скриншот может является устаревшей информацией(Пояснение: Что-то изменилось, а что-то нет).
      Добавил Доналдо Фарекелка Добавлено 14.03.2025 Категория Моды Автор Donaldo_Farekelka  
    • watson
      От watson
      Привет всем!

      Выкладываю рабочий инструмент, который лично писал под задачи для крупных бонусных проектов. От меня недавно произошла доработка - теперь при записи маршрута сохраняются все сообщения, которые вы пишете в чат.
       
      Как это работает Запуск записи:
      Вводите /route с названием скрипта (или биндите на клавишу) — скрипт начинает фиксировать всё ваше передвижение (onfoot/incar/aim пакеты) и любые ваши сообщения в чат. Завершение:
      Ещё раз /route с названием скрипта или /stop — сохраняется маршрут вместе с чатом в файл формата .rt в папке MoonLoader/rakbotRoutes. Воспроизведение:
      Через команду !play <название> в консоли RakSamp LITE — бот воспроизводит маршрут один в один с вашими действиями, повторяет весь ввод, а так-же отправляет в чат все сохранённые сообщения (имитация через Enter). Поддержка цикла:
      Можно включить повтор маршрута (!loop), пока не надоест. Что важно в коде
      Запись всех синк-пакетов (движения, анимации, aim и т.д.):
      Пакеты по движению (onfoot/incar/aim) записываются подробно — никакой халтуры, каждое значение (позиция, кватернион, скорость, анимации, флаги и т.д.) фиксируется для полной копии.  

       
      Запись сообщений чата по индексам
      Каждое сообщение, которое отправляется в чат во время записи маршрута, сохраняется в отдельную таблицу с текущим индексом (counter). То есть при воспроизведении бот знает, на каком этапе какой текст нужно “цитировать” в чат.  

       
      Воспроизведение маршрута и чата
      На каждом этапе воспроизведения проверяется, было ли сообщение в этот момент — если да, оно “отправляется” как будто в оригинале, без задержек и рассинхрона. Пакеты проигрываются по индексу — как только доходит до конца, скрипт сам решает, останавливать ли выполнение или запускать по кругу (если включен loop).  

       
      Формат сохранения
      Файл маршрута содержит не только действия, но и отдельную секцию [chat], что позволяет воспроизвести всё как было, а не только беготню.  

       
       
      Если кому-то реально нужна автоматизация для бонусных серверов и не только как например фейковые игроки и вам важна последовательность действий и чата — этот инструмент сэкономит часы времени. Всё написано максимально просто для внедрения.

      P.S. Если есть определённые проблемы, вопросы или даже идеи для доработки — пишите.
      Desktop.zip