Куряга

Продажа мода Perfect RP(1.6).

В теме 8 сообщений

Продажа мода Perfect RP(1.6).

Просмотр файла

Доброго времени суток! 
Продажа мода Perfect RP Linkash'a, покупал вместе с мод-паком за 450 рублей, а продаю за 250! Считайте скидка и мод-пак скину в лс, даю слово.
А так же, можете посмотреть обзор: https://www.youtube.com/watch?v=jbQ4SJElHFo - это версия мода 1.5, вы можете купить 1.6 за 250 рублей.

Change-log:

Версия 1.1
    - Добавлена сис-ма праздников(С более обширным функционалом, чем будет в слитой версии)

Версия 1.2
    - Добавлена команда /mtime(Для просмотра оставшихся минут мута)
    - Команда /createpodezd теперь функционирует
    - Теперь возможно создавать радары и ATM(раньше нельзя было установить позицию)
    - Переписана команда /ahelp
    - Добавлена команда /fdhel
    - Добавлен дейфан, который отвечает за выдачу доступа к различным командам(/add и т.д.)
    - Обновлён спидометр
    - Добавлена команда /afly
    - Убраны надписи "АВТОРОМ СЛИВА ЯЛВЯЕТСЯ LINKASH"

Версия 1.3
    - Добавлен телепорт для админов(/tp) + пункт в GPS к контейнерам
    - Добавленка команда для изменения цен контейнеров прямо из игры(/editcontcena)
    - Добавлена команда /continfo для просмотра актуальной информации по контейнерам
    - Добавлена команда /checkjtime для просмотра оставшихся минут тюрьмы игрока(3 уровень администратора)
    - Добавлена команда /checkmtime для просмотра оставшихся минут мута игрока(3 уровень администратора)
    - Добавлена команда /otvet для отправления игрокам готовых ответов
    - Была убрана система лотереи
    - Добавлена команда /clearlog для очистки логов определённого человека и лога(доступно для людей, которые указаны в моде)
    - Добавлена команда /clearalllog для очисти определённого типа лога(доступно для людей, которые указаны в моде)
    - Убраны текстадрвы, которые отображали время, дату и ссылку на группу в ВК
    - Новый логотип
    - Новый TD денег
    
Версия 1.4
    - Добавлена система ютуберки
    - Добавлена команда /ythelp(Доступно для ютуберов)
    - Добавлена команда /fixveh(Доступно для ютуберов. Команда для починки авто без вывода сообщений в чат)
    - Добавлена команда /tpp(Доступно для ютуберов. Команда показывает меню телепорта)
    - Добавлена команда /yt(Доступно для ютуберов. Через эту команду можно писать другим ютуберам)
    - Добавлена команда /setyoutuber(доступно для людей, которые указаны в моде)
    - Добавлена возможность смотреть весь список ютуберов(доступно в /apanel для людей с полным доступом)
    - Добавлена команда /fakeban(Для выдачи фейк бана. Доступно для 11 lvl adm)
    - Добавлен лог для просмотра всех действий ютубера
    - Добавлена команда /video(Доступно для ютуберов. Команда включает/выключает режим съёмки. При включенном режиме съёмки не отображается чат ютуберов)
    - Добавлена команда /mycc(для очисти чата у обычного игрока)
    - Добавлена команда /fakeoffban(Для выдачи фейк бана оффлайн. Доступно для 11 lvl adm)
    
Версия 1.5
    - Команда /razrabpanel теперь доступна для людей, которые вписаны в мод
    - Убрана команда /continfo
    - Добавлен раздел "Контейнеры" в панель разработчика(/razrabpanel)
    - Команда /editcontcena была изменена на /editcont
    - Команда /editcont позволяет менять цены на контейнеры, количество контейнеров, количество открытых контейнеров
    - Добавлена система количества оставшихся контейнеров, количества открытых контейнеров.
    - В разделе "Контейнеры" можно посмотреть общую информацию о контейнерах(сколько осталось контейнеров, сколько всего их открыли, их цену, шансы на выпадение призов)
    - Добавлена команда /pm(Для отправки NonRP сообщений)
    - Добавлена команда /pmoff(для отключения/включения pm)
    - Добавлен раздел "Настройка сервера" в панель разработчика(/razrabpanel)
    - Через раздел "Настройка сервера" можно прямо из игры менять название сервера, уровень и деньги при регистрации
Версия 1.6
    - Добавлена команда /givecmd для выдачи доступа к различным командам(Доступно для людей, которые вписаны в мод)
    - Добавлена команда /admdonate(Доступна для администраторов)
    - В /admdonate добавлена возможность покупать админ команды
    - В /admdonate добавлена возможность приобрести набор "Король всех администраторов"
    - Чтобы пользоваться командами /ban /mute /setleader /givemoney /fakeban /fakeoffban теперь необходимо приобрести их в /admdonate(или же выдать их игроку через /givecmd)
    - Цена за повышение админ-уровня после 8ого была изменена на 500 рублей.
    - Были изменены шансы на получения призов в контейнерах(Изменения в разделе "Контейнеры" будут в след.версии)
    - Были расставлены большинство домов/бизнесов/банкоматов по всей карте
    - Была добавлена возможность приобрести лидерку в /donate(Цена от 100р)
    - Был исправлен баг, который позволял багать вирты
    - Была добавлена команда /sethousecena для изменения цен на определённый тип дома(Доступно для людей, которые вписаны в мод)
    - Была добавлена команда /admrules
    - В /donate добавлена возможность приобрести пакет "MORGENSHTERN"(Даёт деньги, два автомобиля, скин)
    - Был исправлен баг, который не выдавал двойнйо донат при X2 донате

    ------------[Изменения для пакета модификаций]------------
    - Были изменены названия всех заменённых автомобилей
    - Все цены на автомобили были изменены
    - Скины были разделены по фракциям

 


  • Добавил
  • Добавлено
    23.12.2021
  • Категория
  • Автор
    Linkash(Продаёт Куряга)

 

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


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

В принципе не понятно, что в этом моде нового сделали, что добавили, больше кажется что он просто слитый, и вы решили его продать.

Лично моё мнение.

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


Ссылка на сообщение
Поделиться на другие сайты
  В 12/23/2021 в 18:08, danya_white сказал:

В принципе не понятно, что в этом моде нового сделали, что добавили, больше кажется что он просто слитый, и вы решили его продать.

Лично моё мнение.

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

Хорошо, я сейчас добавлю обновления.

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


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

как скачать 

 

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

Нажать на кнопку "Просмотр файла".

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


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

@rusya12, мод продается, его никак не скачать пока не купишь.

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


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

Оптимизирован под mobail

 

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


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

@Куряга оплатил заказ - в покупках нету, что делать?

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

Обратитесь в тех.поддержку - https://pawno-rus.ru/support/

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


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

1.8 Уже слит закрывай продажу

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

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