Вопросы

erg rfbfdh
Новичок
    }
        case dCreatehouse1:
        {
            if(!response) return 1;
            gCreatehouse[playerid][chouseHint] = listitem;
            show_dialog(playerid,dCreatehouse2,1,"Ñîçäàíèå æèëèùà","Óêàæèòå öåíó çà êâàðòèðó/äîì (îò 1 òûñ. äî 15 ìëí.)","Äàëåå","Âûõîä");
        }
        case dCreatehouse2:
        {
            if(!response) return 1;
            new price = strval(inputtext);
            if(!isNumeric(inputtext) || price < 1000 || price > 15000000)
            {
                SendClientMessage(playerid,CRED,"Íåâåðíàÿ öåíà");
                show_dialog(playerid,dCreatehouse2,1,"Ñîçäàíèå æèëèùà","Óêàæèòå öåíó çà êâàðòèðó/äîì (îò 1 òûñ. äî 15 ìëí.)","Äàëåå","Âûõîä");
                return 1;
            }
            gCreatehouse[playerid][chousePrice] = price;
            show_dialog(playerid,dCreatehouse3,2,"Ñîçäàíèå æèëèùà","Ýêîíîì êëàññ\nÑðåäíèé êëàññ\nÝëèòíûé êëàññ\nÎñîáíÿê","Ñîçäàòü","Âûõîä");
        }
        case dCreatehouse3:
        {
            if(!response) return 1;
            new clas=listitem;
            new Float:x, Float:y, Float:z, Float:r;
            GetPlayerPos(playerid,x,y,z);
            GetPlayerFacingAngle(playerid,r);
            
            new f_str[512];
            format(f_str,sizeof(f_str),"INSERT INTO `houses` VALUES('','%d','3','%d','%d','0|0|0|0|0','0|0|0|0|0|0|0|0|0','0|0|0|0','0','0','0','0','0','%f','%f','%f','%f','','','','','','','','','','','','')",clas,gCreatehouse[playerid][chousePrice],gCreatehouse[playerid][chouseHint],x,y,z,r);
            new Cache:result = mysql_query(dbHandle, f_str);
            
            new houseid = cache_insert_id();
            cache_delete(result);
            new i = houseid - 1;
            gHouses[i][houseID] = houseid;
            gHouses[i][houseClass] = clas;
            gHouses[i][housePrice] = gCreatehouse[playerid][chousePrice];
            gHouses[i][houseHint] = gCreatehouse[playerid][chouseHint];
            gHouses[i][houseX] = x;
            gHouses[i][houseY] = y;
            gHouses[i][houseZ] = z;
            gHouses[i][houseR] = r;
            gHouseArea[i] = CreateDynamicSphere(gHouses[i][houseX],gHouses[i][houseY],gHouses[i][houseZ],2.0,0,0,-1);
            gHousePickup[i] = CreateDynamicPickup(1273,1,gHouses[i][houseX],gHouses[i][houseY],gHouses[i][houseZ]);
        }
        case dCreatebiz1:
        {
            if(!response) return 1;
            gCreatebiz[playerid][chouseBint] = listitem + 1;
            show_dialog(playerid,dCreatebiz2,1,"Ñîçäàíèå áèçíåñà","Óêàæèòå öåíó çà áèçíåñ (îò 1 òûñ. äî 10 ìëí.)","Äàëåå","Âûõîä");
        }
        case dCreatebiz2:
        {
            if(!response) return 1;
            new sellprice = strval(inputtext);
            if(!isNumeric(inputtext) || sellprice < 1000 || sellprice > 10000000)
            {
                SendClientMessage(playerid,CRED,"Íåâåðíàÿ öåíà");
                show_dialog(playerid,dCreatebiz2,1,"Ñîçäàíèå áèçíåñà","Óêàæèòå öåíó çà áèçíåñ (îò 1 òûñ. äî 10 ìëí.)","Äàëåå","Âûõîä");
                return 1;
            }
            gCreatebiz[playerid][chouseSellprice] = sellprice;
            show_dialog(playerid,dCreatebiz3,2,"Ñîçäàíèå áèçíåñà","Ïðîä ìàãàçèí\nÇàêóñî÷íàÿ\n24/7\nÁàð\nÊëóá\n24/7(íå ðàáîòàåò)\nÌàãàçèí îäåæäû\nÀâòîìàñòåðñêàÿ(íå ðàáîòàåò)\nÌàãàçèí îðóæèÿ\nÏèðîòåõíèêà\nÐåñòîðàí\nÏåéíòáîë(íå ðàáîòàåò)\nÐèåëòîðêà\nÀâòîñàëîí\nÀêñåñóàðû","Ñîçäàòü","Âûõîä");
        }
        case dCreatebiz3:
        {
            if(!response) return 1;
            new type = listitem++;
            gCreatebiz[playerid][chouseType] = type + 1;
            show_dialog(playerid,dCreatebiz4,1,"Ñîçäàíèå áèçíåñà","Íàçâàíèå áèçíåñà","Äàëåå","Âûõîä");
        }
        case dCreatebiz4:
        {
            if(!response) return 1;
            new name[55];
            format(name ,sizeof(name),"%s",inputtext);
        //  new name[55] = strval(inputtext);
            gCreatebiz[playerid][chouseName] = name;
            new Float:x, Float:y, Float:z, Float:r;
            GetPlayerPos(playerid,x,y,z);
            GetPlayerFacingAngle(playerid,r);
            //total_biz
            //format(f_str,sizeof(f_str),"INSERT INTO `business` VALUES('','%s','%d','%d','0','%d','0','0','0','1','%f','%f','%f','%f','','')",name,type,bint,price,x,y,z,r);
            new f_str[612];
            format(f_str,sizeof(f_str),"INSERT INTO `business` VALUES('','%s','%d','%d','0','%d','0','0','0','1','%f','%f','%f','%f','0','0','0','0','0','0')",gCreatebiz[playerid][chouseName],gCreatebiz[playerid][chouseType],gCreatebiz[playerid][chouseBint],gCreatebiz[playerid][chouseSellprice] ,x,y,z,r);
            new Cache:result = mysql_query(dbHandle, f_str);
            new businessid = cache_insert_id();
            //new businessid = total_biz + 1;
            cache_delete(result);
            new i = businessid - 1;
            b_info[i][busiName] = gCreatebiz[playerid][chouseName];
            b_info[i][busiID] = businessid;
            b_info[i][busiType] = gCreatebiz[playerid][chouseType];
            b_info[i][busiSellPrice] = gCreatebiz[playerid][chouseSellprice];
            b_info[i][busiBint] = gCreatebiz[playerid][chouseBint];
            b_info[i][busiX] = x;
            b_info[i][busiY] = y;
            b_info[i][busiZ] = z;
            b_info[i][busiR] = r;
            //gHouseArea[i] = CreateDynamicSphere(gHouses[i][houseX],gHouses[i][houseY],gHouses[i][houseZ],2.0,0,0,-1);
            //gHousePickup[i] = CreateDynamicPickup(1273,1,gHouses[i][houseX],gHouses[i][houseY],gHouses[i][houseZ]);
        }

помогите создать команду для создание бизнеса и дома

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


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

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

  • 0
sinvays
Завсегдатый
CMD:createhouse(playerid, params[])
{
    show_dialog(playerid, dCreatehouse1, 2"Создание жилья""Выберите тип жилья""Далее""Выход");
    return 1;
}

CMD:createbiz(playerid, params[])
{
    show_dialog(playerid, dCreatebiz1, 2"Создание бизнеса""Выберите интерьер бизнеса""Далее""Выход");
    return 1;
}

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
RayanBueno
Освоившийся

полностью аккуратно переписанный create house / create biz, без багов со строками, listitem++, с проверками и безопасным SQL.

 

1. Структуры данных

 

// ===== CREATE HOUSE =====
enum eCreateHouse
{
    chHint,
    chPrice
}
new gCreateHouse[MAX_PLAYERS][eCreateHouse];

// ===== CREATE BIZ =====
enum eCreateBiz
{
    cbBint,
    cbSellPrice,
    cbType,
    cbName[55]
}
new gCreateBiz[MAX_PLAYERS][eCreateBiz];

// ===== CREATE HOUSE =====
enum eCreateHouse
{
    chHint,
    chPrice
}
new gCreateHouse[MAX_PLAYERS][eCreateHouse];

// ===== CREATE BIZ =====
enum eCreateBiz
{
    cbBint,
    cbSellPrice,
    cbType,
    cbName[55]
}
new gCreateBiz[MAX_PLAYERS][eCreateBiz];

 

2. CREATE HOUSE (чисто и стабильно)

dCreatehouse1 — подсказка

case dCreatehouse1:
{
    if(!response) return 1;
    gCreateHouse[playerid][chHint] = listitem;

    show_dialog(playerid, dCreatehouse2, 1,
        "Создание жилья",
        "Укажите цену (1 000 – 15 000 000)",
        "Далее""Выход"
    );
}

 

dCreatehouse2 — цена

case dCreatehouse2:
{
    if(!response) return 1;

    if(!isNumeric(inputtext))
        return SendClientMessage(playerid, CRED, "Введите число");

    new price = strval(inputtext);
    if(price < 1000 || price > 15000000)
        return SendClientMessage(playerid, CRED, "Цена от 1 000 до 15 000 000");

    gCreateHouse[playerid][chPrice] = price;

    show_dialog(playerid, dCreatehouse3, 2,
        "Создание жилья",
        "Эконом\nСредний\nЭлитный\nОсобняк",
        "Создать""Выход"
    );
}

dCreatehouse3 — создание

case dCreatehouse3:
{
    if(!response) return 1;

    new Float:x, Float:y, Float:z, Float:r;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, r);

    new class = listitem;

    new query[512];
    format(query, sizeof(query),
        "INSERT INTO houses "
        "(class, price, hint, x, y, z, r) "
        "VALUES (%d, %d, %d, %f, %f, %f, %f)",
        class,
        gCreateHouse[playerid][chPrice],
        gCreateHouse[playerid][chHint],
        x, y, z, r
    );

    mysql_query(dbHandle, query);
    new houseid = cache_insert_id();

    new i = houseid - 1;
    gHouses[i][houseID]    = houseid;
    gHouses[i][houseClass] = class;
    gHouses[i][housePrice] = gCreateHouse[playerid][chPrice];
    gHouses[i][houseHint]  = gCreateHouse[playerid][chHint];
    gHouses[i][houseX] = x;
    gHouses[i][houseY] = y;
    gHouses[i][houseZ] = z;
    gHouses[i][houseR] = r;

    gHouseArea[i]   = CreateDynamicSphere(x, y, z, 2.0);
    gHousePickup[i] = CreateDynamicPickup(12731, x, y, z);

    SendClientMessage(playerid, CGREEN, "Дом успешно создан");
}

3. CREATE BUSINESS (правильно и безопасно)

dCreatebiz1 — интерьер

case dCreatebiz1:
{
    if(!response) return 1;
    gCreateBiz[playerid][cbBint] = listitem + 1;

    show_dialog(playerid, dCreatebiz2, 1,
        "Создание бизнеса",
        "Цена бизнеса (1 000 – 10 000 000)",
        "Далее""Выход"
    );
}

dCreatebiz2 — цена

case dCreatebiz2:
{
    if(!response) return 1;

    if(!isNumeric(inputtext))
        return SendClientMessage(playerid, CRED, "Введите число");

    new price = strval(inputtext);
    if(price < 1000 || price > 10000000)
        return SendClientMessage(playerid, CRED, "Цена от 1 000 до 10 000 000");

    gCreateBiz[playerid][cbSellPrice] = price;

    show_dialog(playerid, dCreatebiz3, 2,
        "Создание бизнеса",
        "Продукты\nЗакусочная\n24/7\nБар\nКлуб\nОдежда\nСТО\nОружие\nРесторан",
        "Далее""Выход"
    );
}

dCreatebiz3 — тип

case dCreatebiz3:
{
    if(!response) return 1;
    gCreateBiz[playerid][cbType] = listitem + 1;

    show_dialog(playerid, dCreatebiz4, 1,
        "Создание бизнеса",
        "Введите название бизнеса",
        "Создать""Выход"
    );
}

dCreatebiz4 — создание

case dCreatebiz4:
{
    if(!response) return 1;

    if(strlen(inputtext) < 3 || strlen(inputtext) > 50)
        return SendClientMessage(playerid, CRED, "Название от 3 до 50 символов");

    format(gCreateBiz[playerid][cbName], 55"%s", inputtext);

    new name_esc[110];
    mysql_escape_string(gCreateBiz[playerid][cbName], name_esc);

    new Float:x, Float:y, Float:z, Float:r;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, r);

    new query[512];
    format(query, sizeof(query),
        "INSERT INTO business "
        "(name, type, bint, price, x, y, z, r) "
        "VALUES ('%s', %d, %d, %d, %f, %f, %f, %f)",
        name_esc,
        gCreateBiz[playerid][cbType],
        gCreateBiz[playerid][cbBint],
        gCreateBiz[playerid][cbSellPrice],
        x, y, z, r
    );

    mysql_query(dbHandle, query);
    new bizid = cache_insert_id();

    new i = bizid - 1;
    b_info[i][busiID] = bizid;
    format(b_info[i][busiName], 55"%s", gCreateBiz[playerid][cbName]);
    b_info[i][busiType] = gCreateBiz[playerid][cbType];
    b_info[i][busiBint] = gCreateBiz[playerid][cbBint];
    b_info[i][busiSellPrice] = gCreateBiz[playerid][cbSellPrice];
    b_info[i][busiX] = x;
    b_info[i][busiY] = y;
    b_info[i][busiZ] = z;
    b_info[i][busiR] = r;

    SendClientMessage(playerid, CGREEN, "Бизнес успешно создан");
}

 

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


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

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

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

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

    • Super_Gost'
      От Super_Gost'
      Приветствую. Для разработки собственного проекта требуется специалист, способный подготовить стабильную клиентскую базу на движке GTA San Andreas для работы с картой CRMP.

      Техническое задание:

      Задача: Интегрировать файлы карты CR в клиент так, чтобы обеспечить стабильную работу в SA-MP 0.3.7 / open.mp.

      Лимиты: Настроить Fastman92 Limit Adjuster. Необходимо грамотно расширить лимиты: IDE записей и так далее.

      Синхронизация с сервером: Подготовить список ID используемых объектов для корректного переноса в серверную часть на ядро Open MP.

      Требования к результату:

      Клиент должен запускаться без крашей и работать без прочих багов.

      На выходе нужно получить готовую сборку (архив), которая станет "фундаментом" для дальнейшей разработки мода и лаунчера.

      Бюджет обсуждаем. Ищу человека с опытом в CRMP-моддинге, который разбирается в этом. Сама работа является единоразовой/не на постоянной основе.

      Данные для связи: Tg: @Ichigo22149
    • Dkskssjksk
      От Dkskssjksk
      🎮 Aeron RP — твой новый мир приключений!
       
      Долгожданный релиз уже близко! Совсем скоро ты сможешь окунуться в атмосферу настоящей ролевой игры на проекте Aeron RP.
       
      📅 Даты выхода:
       
      ПК: 15 мая.
      Android: 17 июня.
      🔥 Что тебя ждёт?
       
      Уникальная атмосфера и интересные задания.
      Дружное сообщество и активная администрация.
      Множество возможностей для развития своего персонажа.
      Не упусти шанс стать частью чего-то большего! Присоединяйся к нам уже сейчас, чтобы быть в курсе всех новостей и первыми узнать о старте.
       
      📢 Жми на ссылку и вступай в нашу группу:https://vk.me/join/TbRXlGjoMv4ymO3jogFudJOTVKZbmFfNYLc=
       
      Aeron RP — твоя история начинается здесь!
    • sinvays
      От sinvays
      PayDay RolePlay (Бонусный мод)
      Скачать файл Версия MySQL: R39-6
      Командный процессор: Pawn.CMD
      Объём основного файла: ~36к строк
      Античит: Nex-AC

      Подключение к базе данных:
      • Файл: new.pwn

      Описание:
      Работал когда-то с Ильёй Демидовым. Опыт был негативный, дальше сотрудничество смысла не имело. Позже к проекту подключился Костя Царик, и ситуация только ухудшилась. Сам мод изначально разрабатывался другим разработчиком, Сергей Щеблыкин, после него подключился я. В какой-то момент возникли проблемы по части оплаты которую обязан был выплатить Илья Демидов, после этого я забрал мод и прекратил работу. Недавно также была заблокирована группа PayDay из-за конфликтной ситуации с покупкой игрового проекта. Сам мод на текущий момент не представляет особой ценности как готовый продукт, по крайней мере для меня. Внутри много старых решений и костылей, доставшихся ещё с ранних версий PayDay старым разработчиком. С моей стороны были сделаны базовые вещи - система выдачи команд, префиксы, а также исправлены критические баги, из-за которых мод падал. По нагрузке может держать около 200 игроков, но точных гарантий нет, там было накручено не больше 200+ ботов. На этом от моего имени PayDay закрыт.
      Добавил sinvays Добавлено 19.04.2026 Категория Моды Автор sinvays  
    • sinvays
      От sinvays
      Версия MySQL: R39-6
      Командный процессор: Pawn.CMD
      Объём основного файла: ~36к строк
      Античит: Nex-AC

      Подключение к базе данных:
      • Файл: new.pwn

      Описание:
      Работал когда-то с Ильёй Демидовым. Опыт был негативный, дальше сотрудничество смысла не имело. Позже к проекту подключился Костя Царик, и ситуация только ухудшилась. Сам мод изначально разрабатывался другим разработчиком, Сергей Щеблыкин, после него подключился я. В какой-то момент возникли проблемы по части оплаты которую обязан был выплатить Илья Демидов, после этого я забрал мод и прекратил работу. Недавно также была заблокирована группа PayDay из-за конфликтной ситуации с покупкой игрового проекта. Сам мод на текущий момент не представляет особой ценности как готовый продукт, по крайней мере для меня. Внутри много старых решений и костылей, доставшихся ещё с ранних версий PayDay старым разработчиком. С моей стороны были сделаны базовые вещи - система выдачи команд, префиксы, а также исправлены критические баги, из-за которых мод падал. По нагрузке может держать около 200 игроков, но точных гарантий нет, там было накручено не больше 200+ ботов. На этом от моего имени PayDay закрыт.