11 изображений

Доброго времени суток, хочу выложить в открытый доступ мод Brilliat Mobile.

 

В связи с тем что мод пошел по рукам, мод попадает в открытый доступ, мод выдерживал онлайн в 1000 человек.

Данный мод разрабатывался с 2018 году, и в 2021 был продан другим владельцам, и они начали его продавать.

 

Информация о моде:

MYSQL - R41-4

Античит - Nex.AC

Командный процессор - Pawn.CMD

 

Обзор данного мода:

  Цитата
Читать далее...  

 

 


 Пожаловаться



Еще файлы danya_white


Обратная связь

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

    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }
    • Danny_Marcelo
      От Danny_Marcelo
      Всех приветствую. Сегодня я решил обновить систему мероприятий, т.к. на самом проекте Advance RP уже давно видоизменили систему, добавили нового функционала. Мы не должны стоять на месте и я решил тоже свою систему доработать. Вы можете использовать данную систему как аналог Advance RP или же доработать для своего проекта. Все в ваших руках как говорится.
       
      Что нового?
       
      Итак приступим:
      Находим свои переменные и вставляем:
       
      new settp = 0; // Флаг включения/выключения телепортации new Float:TeleportFloat[3]; // Координаты точки телепортации new TeleportInfo[2]; // Интерьер и виртуальный мир new Float:PlayerLastPos[MAX_PLAYERS][3]; // Последние координаты игрока new PlayerLastInt[MAX_PLAYERS]; // Последний интерьер игрока new PlayerLastVW[MAX_PLAYERS]; // Последний виртуальный мир игрока new PlayerWeapons[MAX_PLAYERS][13][2]; // Оружие игрока (слот и патроны) new PlayerUsedTP[MAX_PLAYERS]; // Флаг для отслеживания использования /tp  
      Далее идём в команды, мой случай на Pawn.CMD, но +/- везде одинаково, разве что меняется шапка
       
      CMD:settp(playerid, params[]) {     if (PlayerInfo[playerid][pAdmin] < 4) return 1;     new string[95];     if (settp == 0)     {         GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);         TeleportInfo[0] = GetPlayerInterior(playerid);         TeleportInfo[1] = GetPlayerVirtualWorld(playerid);         settp = 1;         format(string, sizeof(string), "[A] %s[%d] установил точку телепорта для игроков. {00CC00}ТП включен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);     }     else     {         format(string, sizeof(string), "[A] %s[%d] удалил точку телепорта для игроков. {FF6600}ТП отключен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);         settp = 0;     }     return 1; } CMD:tp(playerid, params[]) {     if (settp == 0) return SendClientMessage(playerid, 0xCECECEFF, !"Функция отключена администратором.");     if (PlayerInfo[playerid][pJailed] >= 1) return SendClientMessage(playerid, 0xCECECEFF, !"Арестованным не разрешено покидать камеру.");     if (PlayerInfo[playerid][pRabota] != 0) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     if (bolkam[playerid] == true) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     GetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     PlayerLastInt[playerid] = GetPlayerInterior(playerid);     PlayerLastVW[playerid] = GetPlayerVirtualWorld(playerid);     for (new i = 0; i < 13; i++)     {         GetPlayerWeaponData(playerid, i, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);     }     PlayerUsedTP[playerid] = 1;     ShowPlayerDialog(playerid, 22, DIALOG_STYLE_MSGBOX, !"{6699FF}Телепортация",         !"{FFFFFF}Вы уверены, что хотите попасть на место проведения мероприятия?\n{FFCD00}Ваше оружие будет изъято для хранения и возвращено позже.", !"Да", !"Нет");     return 1; }  
       
      CMD:back(playerid, params[]) {     if (!PlayerUsedTP[playerid])     {         return SendClientMessage(playerid, 0xCECECEFF, !"Эту функцию можно использовать после {FF9933}/tp, /go {CECECE}или по окончании {FF9933}мероприятий");     }     SetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     SetPlayerInterior(playerid, PlayerLastInt[playerid]);     SetPlayerVirtualWorld(playerid, PlayerLastVW[playerid]);     ResetPlayerWeapons(playerid);     for (new i = 0; i < 13; i++)     {         if (PlayerWeapons[playerid][i][0] != 0)         {             GivePlayerWeapon(playerid, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);         }     }     PlayerUsedTP[playerid] = 0;     SendClientMessage(playerid, 0x3399FFFF, !"Вы вернулись туда, где были до телепортации");     return 1; } Ну и в OnDialogResponse:
      case 22: // Не забудьте проверить и при надобности изменить id диалога на вашу цифру или ID_NAME         {             if (response)             {                 SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);                 SetPlayerInterior(playerid, TeleportInfo[0]);                 SetPlayerVirtualWorld(playerid, TeleportInfo[1]);                 ResetPlayerWeapons(playerid);                 SendClientMessage(playerid, 0x66CCFFFF, "Вы были доставлены на место проведения мероприятия");                 SendClientMessage(playerid, 0x66CCFFFF, "Чтобы вернуться обратно, введите {FF9900}/back");             }         } Скриншоты:
       
      Если игрок сидит в КПЗ и вводит /tp:

       
      При включенном /tp:

       
      При выключенном /tp:

       
      Сообщение администраторам:

       
      Если работаешь или лечишься в больнице:

       
      Текст после телепортации:

       
      При вводе /back 1 и более раз:

       
      P.S. Команду /tp на Advance можно нажимать бесконечно, по этому я не стал сюда пихать аналогичную проверку как в /back.
      Если что, не сложно будет добавить 1 строчку проверки. Просто имейте ввиду, что это не баг. Просто нужно же соответствовать названию темы "На 100% КОПИЯ"))
       
      Автор: Danny_Marcelo
      Размещая на другие порталы, обязательно указать автора
    • Wiggins
      От Wiggins
      Доброго времени суток, нуждаюсь в помощи. Если есть люди, которые шарят в pawno, нужна помощь. Короче, мод ART RP, там в донате есть строка "Уникальные аксессуары", когда на него нажмешь, открывается TextDraw менью, нужно переделать это на обычную менью (/mm например, там обычная менью), буду рад, если поможете, за ранее спасибо.

      Если не ошибаюсь, строка текстдрав аксессуаров начинается с 1416 до 1443.
      art4.pwn
    • Danny_Marcelo
      От Danny_Marcelo
      Приветствую всех. Сегодня я хочу поделиться системой создания объектов как на Advance RP. Пока нигде не встречал. Да, есть аналоги, порой весьма неплохие. Особенно скрипт SOE. Но тут именно конкретная копия проекта Advance RP. Администрация Advance RP старается максимально скрывать админ информацию главной админки, но благодаря ютуберам какая то информация всё таки просочилась в общий доступ. Благодаря этому мне и удалось воссоздать почти на 100% копию данной системы. Для начала распишу суть. К никам Andrey Ringo, Smart_Jakson и прочим спец.админам привязана команда /lego. Она даёт доступ к другим командам, которые используются для создания и редактирования объектов. Как я понял объекты находятся непосредственно в базе данных MariaDB, а не на сервере, создатель боится что если всем подряд давать команду, те могут положить сервер (случайно), как например ютубер MalFoy чуть этого не сделал:

      Ну в основном она привязана на каждом сервере индивидуально. К примеру на грине по мимо Ринго и Смарта еще и к главному администратору. На Блу аналогично.
      Ну что же, меньше слов, больше дела. Приступим:
      Перейдём к нашим define:
      //========================= [ Привязка к нику ] ================================ #define FullAccessOne                    !strcmp(PlayerInfo[playerid][pName], "Andrey_Ringo", false) #define FullAccessTwo                   !strcmp(PlayerInfo[playerid][pName], "Smart_Jakson", false) #define FullAccessThree                  !strcmp(PlayerInfo[playerid][pName], "Danny_Marcelo", false) #define MAX_LEGO_OBJECTS                 100 // Максимальное количество объектов К нашим переменным:
      //========================  [ LEGO ] =========================================== new LegoObjects[MAX_PLAYERS][MAX_LEGO_OBJECTS]; // Массив для хранения объектов new LegoObjectCount[MAX_PLAYERS]; // Счетчик объектов для каждого игрока new bool:LegoMode[MAX_PLAYERS]; // Режим LEGO new Float:LegoObjectOriginalPos[MAX_PLAYERS][MAX_LEGO_OBJECTS][6]; // [playerid][object_index][x, y, z, rotX, rotY, rotZ] new Float:ServerObjectOriginalPos[MAX_OBJECTS][6]; // [objectid][x, y, z, rotX, rotY, rotZ] new bool:ServerObjectMoved[MAX_OBJECTS]; // Флаг, указывающий, был ли объект перемещён enum {     EDIT_TYPE_NONE,     EDIT_TYPE_GLOBAL,     EDIT_TYPE_PLAYER }; new EditingObjectType[MAX_PLAYERS]; // Тип редактируемого объекта (серверный или игровой) new EditingObjectID[MAX_PLAYERS] = { -1, ... }; // ID редактируемого объекта // ============================================================================= В public OnPlayerConnect(playerid)
      LegoMode[playerid] = false;     LegoObjectCount[playerid] = 0;     EditingObjectID[playerid] = -1;     for(new i = 0; i < MAX_LEGO_OBJECTS; i++)     {         LegoObjects[playerid][i] = INVALID_OBJECT_ID;     } В public OnPlayerDisconnect(playerid, reason)
      for(new i = 0; i < LegoObjectCount[playerid]; i++)     {         if(IsValidObject(LegoObjects[playerid][i]))         {             DestroyObject(LegoObjects[playerid][i]);         }     }     LegoObjectCount[playerid] = 0;     EditingObjectID[playerid] = -1;     DestroyPlayerLogo(playerid); В OnDialogResponse:
      case 272: // Диалог подтверждения для серверных объектов, не забудьте заменить на свой         {             if(response) // Если игрок нажал "Да"             {                 EditObject(playerid, EditingObjectID[playerid]);                 SendClientMessage(playerid, 0xFFFF00AA, "[LEGO] Выберите объект для редактирования");             }         }
      После стандартных public
      public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ) {     if(type == SELECT_OBJECT_GLOBAL_OBJECT) // Если выбран серверный объект     {         ShowPlayerDialog(playerid, 272, DIALOG_STYLE_MSGBOX, !"{ED7A19}Предупреждение",         !"{FFFFFF}Это не LEGO объект. Его перемещение нежелательно.\n\         Вы всё-таки хотите передвинуть его?", !"Да", !"Нет"); // Не забудьте ID диалога заменить аналогично OnDialogResponse         EditingObjectID[playerid] = objectid;         EditingObjectType[playerid] = EDIT_TYPE_GLOBAL;     }     else if(type == SELECT_OBJECT_PLAYER_OBJECT) // Если выбран LEGO-объект     {         for(new i = 0; i < LegoObjectCount[playerid]; i++)         {             if(LegoObjects[playerid][i] == objectid)             {                 EditingObjectID[playerid] = i;                 EditingObjectType[playerid] = EDIT_TYPE_PLAYER;                 EditPlayerObject(playerid, LegoObjects[playerid][i]);                 new string[128];                 format(string, sizeof(string), "[LEGO] Редактирование объекта {3E8A33}%d", i + 1);                 SendClientMessage(playerid, 0xFFFF00AA, string);                 return 1;             }         }     }     return 1; } и еще один
      public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {     if(response == EDIT_RESPONSE_FINAL)     {         if(EditingObjectType[playerid] == EDIT_TYPE_GLOBAL) // Если это серверный объект         {             GetObjectPos(objectid, ServerObjectOriginalPos[objectid][0], ServerObjectOriginalPos[objectid][1], ServerObjectOriginalPos[objectid][2]);             GetObjectRot(objectid, ServerObjectOriginalPos[objectid][3], ServerObjectOriginalPos[objectid][4], ServerObjectOriginalPos[objectid][5]);             ServerObjectMoved[objectid] = true;             SetObjectPos(objectid, fX, fY, fZ);             SetObjectRot(objectid, fRotX, fRotY, fRotZ);             new string[110];             format(string, sizeof(string), "Позиция объекта сохранена {E5A938}(%d/100){66AF0B}. Используйте /moveobj для перемещения на исходное место", LegoObjectCount[playerid]);             SendClientMessage(playerid, 0x66AF0BFF, string);         }         else if(EditingObjectType[playerid] == EDIT_TYPE_PLAYER) // Если это LEGO объект         {             SetPlayerObjectPos(playerid, objectid, fX, fY, fZ);             SetPlayerObjectRot(playerid, objectid, fRotX, fRotY, fRotZ);         }     }     return 1; } Ну и наконец перейдем в наши команды. Я для примера буду использовать pawncmd:
      Команда для доступа к остальным командам редактирвоания:
      CMD:lego(playerid, params[]) {     if (!FullAccessOne && !FullAccessTwo && !FullAccessThree) return 1;     {         LegoMode[playerid] = !LegoMode[playerid];         if(LegoMode[playerid])         {             SendClientMessage(playerid, 0xFFFFFFFF, !"Режим {F7CB31}LEGO {FFFFFF}включён");             SendClientMessage(playerid, 0xFFFFFFFF, !"Команды: /newobj /dellast /delall /objedit /repeat");             SendClientMessage(playerid, 0xFF0000FF, !"Внимательно вводите id объекта! Неверный id может вызвать падение сервера!");         }         else         {             SendClientMessage(playerid, 0xFFFFFFFF, !"Режим {F7CB31}LEGO {FFFFFF}выключен");         }     }     return 1; } Команда для создания объектов:
      CMD:newobj(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, !"Включи режим LEGO: {F7CB31}/lego");         SendClientMessage(playerid, 0xE3871EFF, !"Внимательно вводите id объекта! Неверный id может вызвать падение сервера!");         if(LegoObjectCount[playerid] >= MAX_LEGO_OBJECTS) return SendClientMessage(playerid, 0xFF0000FF, "Достигнут лимит объектов");         new objectid;         if(sscanf(params, "d", objectid)) return SendClientMessage(playerid, 0xCECECEFF, !"Используйте: /newobj [id объекта]");         new Float:x, Float:y, Float:z;         GetPlayerPos(playerid, x, y, z);         LegoObjects[playerid][LegoObjectCount[playerid]] = CreatePlayerObject(playerid, objectid, x, y, z, 0.0, 0.0, 0.0, 300.0);         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][0] = x;         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][1] = y;         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][2] = z;         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][3] = 0.0;         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][4] = 0.0;         LegoObjectOriginalPos[playerid][LegoObjectCount[playerid]][5] = 0.0;         LegoObjectCount[playerid]++; // Увеличиваем счетчик объектов         new string[59];         format(string, sizeof(string), "[LEGO] Создан объект. Всего объектов: {35BD39}%d/%d", LegoObjectCount[playerid], MAX_LEGO_OBJECTS);         SendClientMessage(playerid, 0xFFFF00AA, string);     }     return 1; } Команда для редактирования объектов, включая серверных.
      CMD:objedit(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, !"Включи режим LEGO: {F7CB31}/lego");         SendClientMessage(playerid, 0xFFFF00AA, !"[LEGO] Выберите объект для редактирования");         SelectObject(playerid);     }     return 1; } Данная команда, вернёт передвинутые объекты вашего сервера в исходное состояние
      CMD:moveobj(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, !"Включи режим LEGO: {F7CB31}/lego");         new movedObjects = 0;         for(new i = 0; i < MAX_OBJECTS; i++)         {             if(ServerObjectMoved[i])             {                 SetObjectPos(i, ServerObjectOriginalPos[i][0], ServerObjectOriginalPos[i][1], ServerObjectOriginalPos[i][2]);                 SetObjectRot(i, ServerObjectOriginalPos[i][3], ServerObjectOriginalPos[i][4], ServerObjectOriginalPos[i][5]);                 ServerObjectMoved[i] = false;                 movedObjects++;             }         }         new string[92];         format(string, sizeof(string), "Стандартные объекты со смещённой позицией возвращены на свои места {E8AC32}(%d шт.)", movedObjects);         SendClientMessage(playerid, 0x78A82CFF, string);     }     return 1; } Эта команда удаляет последний созданный объект через /newobj
      CMD:dellast(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, "Включи режим LEGO: {F7CB31}/lego");         if(LegoObjectCount[playerid] == 0) return SendClientMessage(playerid, 0xCECECEFF, "Нет объектов для удаления.");         DestroyPlayerObject(playerid, LegoObjects[playerid][LegoObjectCount[playerid] - 1]);         LegoObjectCount[playerid]--;         new string[37];         format(string, sizeof(string), "[LEGO] Удалён объект {F74214}%d/100", LegoObjectCount[playerid]);         SendClientMessage(playerid, 0xFFFF00AA, string);     }     return 1; } Эта команда удалит все созданные вами объекты.
      CMD:delall(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, "Включи режим LEGO: {F7CB31}/lego");         if(LegoObjectCount[playerid] == 0) return SendClientMessage(playerid, 0xCECECEFF, "Нет объектов для удаления.");         for(new i = 0; i < LegoObjectCount[playerid]; i++)         {             DestroyPlayerObject(playerid, LegoObjects[playerid][i]);         }         LegoObjectCount[playerid] = 0;         SendClientMessage(playerid, 0xFFFF00AA, !"[LEGO] Все объекты удалены");     }     return 1; } Ну и эта команда повторит действие /newobj [id игрока]
      CMD:repeat(playerid, params[]) {     if(PlayerInfo[playerid][pAdmin] < 5) return 1;     {         if(!LegoMode[playerid]) return SendClientMessage(playerid, 0xFFFFFFFF, "Включи режим LEGO: {F7CB31}/lego");         if(LegoObjectCount[playerid] == 0) return SendClientMessage(playerid, 0xCECECEFF, "Нет объектов для повторения.");         new Float:x, Float:y, Float:z;         GetPlayerPos(playerid, x, y, z);         new lastObjectID = LegoObjects[playerid][LegoObjectCount[playerid] - 1];         new modelid = GetPlayerObjectModel(playerid, lastObjectID);         LegoObjects[playerid][LegoObjectCount[playerid]] = CreatePlayerObject(playerid, modelid, x, y, z, 0.0, 0.0, 0.0, 300.0);         LegoObjectCount[playerid]++;         new string[39];         format(string, sizeof(string), "[LEGO] Создан объект {35BD39}%d/%d", LegoObjectCount[playerid], MAX_LEGO_OBJECTS);         SendClientMessage(playerid, 0xFFFF00AA, string);     }     return 1; } Переменные
      enum pInfo {     pName[MAX_PLAYER_NAME+1],     pAdmin,  new PlayerInfo[MAX_PLAYERS][pInfo]; заменяйте на свои из вашего мода. Цвета я использовал как коды, чтобы у вас не было ошибок error 017: можете заменить на свои дефайны цвета.
      Система полностью тщательно протестирована, она полностью работает. 
      Скриншоты, как выглядит это всё:
       
       
      P.S. Если редактируете серверные объекты, то сразу имейте ввиду, что createobject и стандартные объекты карты GTA San Andreas не редактируются. А вот уже те, которые через inckude <streamer>, то есть CreateDynamicObject, они редактируются. Будьте осторожны при изменениях и добавлениях объектов. Не вбивайте рандомные числа в /newobj. ID объектов SAMP полно в интернете. 
      Спасибо за внимание!
    • hikkan
      От hikkan
      шапка темы.
      сервер лог:
      где-то здесь ругается:
      public: LoadBusinesses() {         new query[85], buffer[2];         new Cache: result, rows;         result = mysql_query(mysql, "SELECT b.*, IFNULL(a.name, 'None') AS owner_name FROM business b LEFT JOIN accounts_1101 a ON a.id=b.owner_id", true);         //result = mysql_query(mysql, "SELECT * FROM business", true);         rows = cache_num_rows();         if(rows > MAX_BUSINESS)         {                 rows = MAX_BUSINESS;                 print("[Business]: DB rows > MAX_BUSINESS");         }         for(new idx; idx < rows; idx ++)         {                 SetBusinessData(idx, B_SQL_ID,          cache_get_field_content_int(idx, "id"));                 SetBusinessData(idx, B_OWNER_ID,        cache_get_field_content_int(idx, "owner_id"));                 cache_get_field_content(idx, "name", g_business[idx][B_NAME], mysql, 30);                 SetBusinessData(idx, B_CITY,                    cache_get_field_content_int(idx, "city"));                 SetBusinessData(idx, B_ZONE,                    cache_get_field_content_int(idx, "zone"));                 SetBusinessData(idx, B_IMPROVEMENTS,    cache_get_field_content_int(idx, "improvements"));                 SetBusinessData(idx, B_PRODS,                   cache_get_field_content_int(idx, "products"));                 SetBusinessData(idx, B_PROD_PRICE,              cache_get_field_content_int(idx, "prod_price"));                 cache_get_field_content(idx, "balance", g_business[idx][B_BALANCE], mysql, 21);                 SetBusinessData(idx, B_RENT_DATE,               cache_get_field_content_int(idx, "rent_time"));                 SetBusinessData(idx, B_PRICE,                   cache_get_field_content_int(idx, "price"));                 SetBusinessData(idx, B_RENT_PRICE,              cache_get_field_content_int(idx, "rent_price"));                 SetBusinessData(idx, B_TYPE,                    cache_get_field_content_int(idx, "type"));                 SetBusinessData(idx, B_INTERIOR,                cache_get_field_content_int(idx, "interior"));                 SetBusinessData(idx, B_ENTER_PRICE,             cache_get_field_content_int(idx, "enter_price"));                 SetBusinessData(idx, B_ENTER_MUSIC,             cache_get_field_content_int(idx, "enter_music"));                 SetBusinessData(idx, B_LOCK_STATUS,             bool: cache_get_field_content_int(idx, "lock"));                 SetBusinessData(idx, B_POS_X,                   cache_get_field_content_float(idx, "x"));                 SetBusinessData(idx, B_POS_Y,                   cache_get_field_content_float(idx, "y"));                 SetBusinessData(idx, B_POS_Z,                   cache_get_field_content_float(idx, "z"));                 SetBusinessData(idx, B_EXIT_POS_X,              cache_get_field_content_float(idx, "exit_x"));                 SetBusinessData(idx, B_EXIT_POS_Y,              cache_get_field_content_float(idx, "exit_y"));                 SetBusinessData(idx, B_EXIT_POS_Z,              cache_get_field_content_float(idx, "exit_z"));                 SetBusinessData(idx, B_EXIT_ANGLE,              cache_get_field_content_float(idx, "exit_angle"));                 SetBusinessData(idx, B_EVICTION,                cache_get_field_content_int(idx, "eviction"));                 SetBusinessData(idx, B_ELECTRICITY,             cache_get_field_content_int(idx, "electricity"));                 SetBusinessData(idx, B_IZNOS,           cache_get_field_content_int(idx, "iznos"));                 SetBusinessData(idx, B_TIME_REPAIR_1,           cache_get_field_content_int(idx, "time_repair_1"));                 SetBusinessData(idx, B_TIME_REPAIR_2,           cache_get_field_content_int(idx, "time_repair_2"));                 SetBusinessData(idx, B_TYPEWETRIKI,             cache_get_field_content_int(idx, "typewetriki"));                 SetBusinessData(idx, B_GANG,            cache_get_field_content_int(idx, "gang"));                 //mysql_format(mysql, query, sizeof query, "UPDATE business SET id=%d WHERE id='%d'", idx, cache_get_field_content_int(idx, "id"));                 //mysql_query(mysql, query, false);                 zone_war_z[idx] = GangZoneCreate                 (                         GetBusinessData(idx, B_POS_X)-6,                         GetBusinessData(idx, B_POS_Y)-6,                         GetBusinessData(idx, B_POS_X)+6,                         GetBusinessData(idx, B_POS_Y)+6                 );                 // ----------------------------------------------------------------------------------                 zone_war_a[idx] = CreateDynamicRectangle                 (                         GetBusinessData(idx, B_POS_X)-6,                         GetBusinessData(idx, B_POS_Y)-6,                         GetBusinessData(idx, B_POS_X)+6,                         GetBusinessData(idx, B_POS_Y)+6                 );                 cache_get_field_content(idx, "owner_name", g_business[idx][B_OWNER_NAME], mysql, 21);                 // -------------------------                 SetBusinessData(idx, B_ORDER_ID, -1);                 SetBusinessData(idx, B_LABEL, CreateDynamic3DTextLabel(GetBusinessData(idx, B_NAME), 0xFFFF00FF, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z) + 1.0, 6.50));                 if(GetBusinessData(idx, B_CITY) == -1 || GetBusinessData(idx, B_ZONE) == -1)                 {                         buffer[0] = Get2DCity(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y));                         buffer[1] = Get2DZone(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y));                         SetBusinessData(idx, B_CITY, buffer[0]);                         SetBusinessData(idx, B_ZONE, buffer[1]);                         mysql_format(mysql, query, sizeof query, "UPDATE business SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], GetBusinessData(idx, B_SQL_ID));                         mysql_query(mysql, query, false);                 }                 if(IsBusinessOwned(idx) && !strcmp(GetBusinessData(idx, B_OWNER_NAME), "None", true))                 {                         SetBusinessData(idx, B_OWNER_ID, 0);                         mysql_format(mysql, query, sizeof query, "UPDATE business SET owner_id=0,improvements=0 WHERE id=%d", GetBusinessData(idx, B_SQL_ID));                         mysql_query(mysql, query, false);                 }                 if(!IsBusinessOwned(idx))                 {                         SetBusinessData(idx, B_PRODS,           0);                         SetBusinessData(idx, B_PROD_PRICE,      0);                         SetBusinessData(idx, B_LOCK_STATUS, false);                         SetBusinessData(idx, B_ENTER_MUSIC, 0);                         SetBusinessData(idx, B_ENTER_PRICE, 0);                         if(GetBusinessData(idx, B_IMPROVEMENTS) >= 6)                         {                                 mysql_format(mysql, query, sizeof query, "DELETE FROM business_gps WHERE bid=%d", idx);                                 mysql_query(mysql, query, false);                         }                 }                 CallLocalFunction("UpdateBusinessLabel", "i", idx);                 BusinessHealthPickupInit(idx); //Иконки для бизов                 if(GetBusinessData(idx, B_TYPE) == 1) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 40, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 2) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 49, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 3 || GetBusinessData(idx, B_TYPE) == 4) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 28, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 5) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 45, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 8) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 25, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 9) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 26, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 17 || GetBusinessData(idx, B_TYPE) == 26 || GetBusinessData(idx, B_TYPE) == 23) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 23) CreatePickup(1275, 25, GetBusinessData(idx, B_EXIT_POS_X), GetBusinessData(idx, B_EXIT_POS_Y), GetBusinessData(idx, B_EXIT_POS_Z), 0, PICKUP_ACTION_TYPE_SHIN, idx);                 if(GetBusinessData(idx, B_TYPE) == 24) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 38, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 25) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 39, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 27) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 18, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 30) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 46, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 31) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 10, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 11) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 6, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 12) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 52, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 32) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 21, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 29) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 34, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 39) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 5, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 23) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 62, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 16) CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 if(GetBusinessData(idx, B_TYPE) == 17 || GetBusinessData(idx, B_TYPE) == 18 || GetBusinessData(idx, B_TYPE) == 19 || GetBusinessData(idx, B_TYPE) == 20 || GetBusinessData(idx, B_TYPE) == 21 || GetBusinessData(idx, B_TYPE) == 23 || GetBusinessData(idx, B_TYPE) == 43)                 {                         if(GetBusinessData(idx, B_TYPE) == 20)                         {                                 CreatePickup(1083, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                                 CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                         }                         else if(GetBusinessData(idx, B_TYPE) == 21 || GetBusinessData(idx, B_TYPE) == 31) CreatePickup(18631, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                         else CreatePickup(1274, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                 }                 else if(GetBusinessData(idx, B_TYPE) == 37)                 {                         CreatePickup(1650, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                         CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 59, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                 }                 else if(GetBusinessData(idx, B_TYPE) == 44)                 {                         CreatePickup(1275, 25, GetBusinessData(idx, B_EXIT_POS_X), GetBusinessData(idx, B_EXIT_POS_Y), GetBusinessData(idx, B_EXIT_POS_Z), -1, PICKUP_ACTION_TYPE_TK_MENU, idx);                         CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 51, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                         CreatePickup(1274, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                         CreateDynamic3DTextLabel("Информация о\nтрудоустройствие",0xFFFFFFFF, GetBusinessData(idx, B_EXIT_POS_X), GetBusinessData(idx, B_EXIT_POS_Y), GetBusinessData(idx, B_EXIT_POS_Z) + 0.5,16.0);                 }                 else if(GetBusinessData(idx, B_TYPE) == 45)                 {                         CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 9, 0, 0, 0, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);                         CreatePickup(1274, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                 }                 else                 {                         CreatePickup(19132, 25, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);                 }                 biz_area[idx] = CreateDynamicSphere(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 3.0, 0, 0, -1);         }         g_business_loaded = rows;         cache_delete(result);         for(new idx; idx < sizeof g_business_interiors; idx ++)         {                 CreatePickup(19132, 23, GetBusinessInteriorInfo(idx, BT_EXIT_POS_X), GetBusinessInteriorInfo(idx, BT_EXIT_POS_Y), GetBusinessInteriorInfo(idx, BT_EXIT_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_EXIT, idx);                 buffer[0] = -1;                 switch(idx)                 {                         case BUSINESS_INTERIOR_SHOP_24_7:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Список товаров",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );                                 CreatePickup(10270, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_SHOP_247, idx);                         }                         case BUSINESS_INTERIOR_ZAKUS:                         {                                 CreatePickup(10270, 23, -1852.6345,1277.0465,1115.8447, -1, -1, idx);                         }                         case BUSINESS_INTERIOR_APTEKA:                         {                             apteka_cp = CreateDynamicCP(-2279.0518,-1485.6300,1001.0000, 1.0);                         }                         case BUSINESS_INTERIOR_SHOP_GARDEN:                         {                                 CreatePickup(19134, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_GARDEN, idx);                                 CreateDynamicCP(-1038.3335,687.4626,1001.0000, 1.5);                         }                         case BUSINESS_INTERIOR_AVTOZAP:                         {                                 /*CreateDynamic3DTextLabel                                 (                                         "{1E90FF}Магазин автозапчастей",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );*/                                 CreatePickup(19134, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_AVTOZAP, idx);                                 CreateDynamicCP(1555.7836,-2400.7815,1001.0000, 1.0);                         }                         case BUSINESS_INTERIOR_PARIK:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Покупка аксессуаров",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );                                 CreatePickup(1276, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BARBER, idx);                         }                         case BUSINESS_INTERIOR_CLUB, BUSINESS_INTERIOR_CASINO:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Меню бара:\n\n"\                                         "{6699FF}1. Лимонад\n"\                                         "2. Пиво\n"\                                         "3. Вино\n"\                                         "4. Шампанское\n"\                                         "5. Водка\n"\                                         "6. Коньяк\n"\                                         "7. Виски\n"\                                         "8. Абсент\n"\                                         "{00CC66}9. Закуска\n"\                                         "10. Сигара",                                         0xFFFFFFCC,                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),                                         9.0                                 );                                 buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), 1.0, _, _, _, 8.0);                         }                         case BUSINESS_INTERIOR_REALTOR_BIZ:                         {                                 g_business_realtor_label = CreateDynamic3DTextLabel                                 (                                         "Состояние бизнеса",                                         0xCCFF66FF,                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),                                         10.0                                 );                                 CreatePickup(1239, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);                                 buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) - 1.0, 1.2, _, _, _, 10.0);                                 CallLocalFunction("UpdateRealtorBizInfo", "");                         }                         case BUSINESS_INTERIOR_REALTOR_HOME:                         {                                 g_house_realtor_label = CreateDynamic3DTextLabel                                 (                                         "Состояние недвижимости",                                         0xCCFF66FF,                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),                                         10.0                                 );                                 CreatePickup(1239, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);                                 buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), 0.7, _, _, _, 5.0);                                 CallLocalFunction("UpdateRealtorHomeInfo", "");                         }                         case BUSINESS_INTERIOR_CLOTHING_SHOP:                         {                                 CreatePickup(1275, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_CLOTHING, idx);                         }                         case BUSINESS_INTERIOR_HOTEL:                         {                                 CreatePickup(1277, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);                                 CreateDynamic3DTextLabel("Услуги\n{FFFFFF}гост. комплекса", 0x3399FFFF, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8, 5.0);                                 buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), 1.2, _, _, _, 20.0);                         }                         case BUSINESS_INTERIOR_CAR_MARKET:                         {                         //      CreatePickup(19134, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_CAR_MARK, idx);                         //      CreateDynamic3DTextLabel("Покупка\nтранспорта", 0xCC6600EE, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8, 5.0);                         }                         case BUSINESS_INTERIOR_CELL_SALON:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Сотовый\n"\                                         "салон\n"\                                         "{FFD83D}Введите /buy",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );                                 CreatePickup(19134, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_CELL_SALON, idx);                         }                         case BUSINESS_INTERIOR_CAR_TUNING:                         {                                 CreatePickup(19134, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_CAR_TUN, idx);                                 CreateDynamic3DTextLabel("Обслуживание\nтранспорта", 0xCC6600EE, GetBusinessInteriorInfo(idx, BT_LABEL_POS_X), GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y), GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z), 5.0);                         }                         case BUSINESS_INTERIOR_COMP_CLUB:                         {                             CreatePickup(1314, 23, 652.1079,-15.6575,1001.4328, -1, PICKUP_ACTION_TYPE_BIZ_PC_GAME, idx);                                 CreatePickup(1581, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_PC_CLUB, idx);                         }                         case BUSINESS_INTERIOR_TIR:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Покупка\n"\                                         "Оружия",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );                                 CreatePickup(1239, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_TIR, idx);                         }                         case BUSINESS_INTERIOR_BUY_GUN:                         {                                 CreateDynamic3DTextLabel                                 (                                         "Покупка\n"\                                         "Оружия",                                         0x00CC00EE,                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_X),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),                                         GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,                                         8.0                                 );                                 CreatePickup(353, 23, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_GUN, idx);                         }                 }                 SetBusinessInteriorInfo(idx, BT_BUY_CHECK_ID, buffer[0]);         }         BusinesGPSListInit();         printf("[Business]: Бизнесов загружено: %d", g_business_loaded); }