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

Разрабатываю свой проект, сделал команду, взял изначально с мода Аризоны и немного подправил.

Моя изюминка в том, что я сливаю сразу с маппингом! еще раз! ВЗЯЛ С МОДА АРИЗОНЫ!

НЕ ЗАБУДЬТЕ КОПИРОВАТЬ С РУССКОЙ РАСКЛАДКОЙ

В моем же моде эта команда для первых уровней админок, хотя тут есть возможность телепортировать других игроков... думайте сами

Но мой мод не позиционирует себя как фулл-рп, а как бонусник.

 

Координаты для телепорта есть в самой команде

 

 SetPlayerPos(id, 2077.1770,-1187.7722,1049.8934);  

 

Цветовые коды:

 

#define COLOR_ADMIN                     (0x828282FF)

 

Сама команда:

 

Спойлер

CMD:az(playerid, params[])
{
    if(admin_ban_time[playerid] > 0) return SendErr(playerid, "Ваши админ-действия на сервере заблокированы"); // удаляем если ваш мод не такой)
    if(p_info[playerid][pAdmin] < 1) return 1; // заменяем на свои проверки
    extract params -> new id; else
    return SendClientMessage(playerid, 0xCC0000FF, "[!] {ffffff}/az [id]");

    if(!IsPlayerConnected(id))
    return SendClientMessage(playerid, 0xCC0000FF, "[!] {ffffff}Выбранный вами игрок не в игре!");

    SetPlayerPos(id, 2077.1770,-1187.7722,1049.8934); //adminzonee  == 2077.1770,-1187.7722,1049.8934 (старая инта)
    SetPlayerInterior(id, 0);
    SetPlayerVirtualWorld(id, 2);
    SendClientMessage(id, 0xFF0000FF,"Администратор телепортировал Вас в {ffffff}Админ-Зону");
    new string[128];
    format(string, sizeof(string), "{99FF99}[A] {FFCC33}%s[%d] {FF0000}телепортировал в {ffffff}Админ-Зону %s[%d]", GetName(playerid), playerid, GetName(params[0]), params[0]);
    SendAdminMessage(COLOR_ADMIN, string);

    SetPlayerPos(playerid, 2077.1770,-1187.7722,1049.8934); //adminzonee  == 2077.1770,-1187.7722,1049.8934 (старая инта)
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,2);

    return true;
}

 

 

Вот сам маппинг:

Спойлер

CreateDynamicObject(5487, 2078.84, -1191.88, 1048.17,   0.00, 0.00, -4.32);   //adminzonee - админ зона
CreateDynamicObject(5485, 2063.61, -1169.79, 1051.52,   0.00, 0.00, 0.00);
CreateDynamicObject(5485, 2096.61, -1172.15, 1051.44,   0.00, 0.00, 0.00);
CreateDynamicObject(707, 2105.24, -1170.45, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2087.72, -1174.74, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2072.62, -1168.02, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2055.28, -1171.38, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2056.66, -1182.52, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2069.64, -1181.42, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2066.57, -1194.15, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2080.30, -1183.88, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2077.30, -1201.92, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2087.87, -1197.89, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(707, 2100.77, -1186.50, 1049.32,   0.00, 0.00, -13.32);
CreateDynamicObject(5483, 2079.60, -1180.46, 1051.10,   1.98, -0.06, -3.60);
CreateDynamicObject(18783, 2083.57, -1125.23, 1049.53,   0.00, 0.00, 0.00);
CreateDynamicObject(18783, 2103.53, -1145.24, 1049.57,   0.00, 0.00, 0.00);
CreateDynamicObject(18783, 2103.55, -1125.22, 1049.50,   0.00, 0.00, 0.00);
CreateDynamicObject(18783, 2083.92, -1145.21, 1049.53,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2099.31, -1171.27, 1043.49,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2096.97, -1172.56, 1043.62,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2094.83, -1169.32, 1043.49,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2064.58, -1167.09, 1043.53,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2063.09, -1165.91, 1043.53,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2079.33, -1191.56, 1043.14,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2081.35, -1156.81, 1046.36,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2079.50, -1154.92, 1046.36,   0.00, 0.00, 0.00);
CreateDynamicObject(9211, 2085.22, -1151.46, 1046.17,   0.00, 0.00, 0.00);

 

 

Машины в админ зоне:

Спойлер

        //==================== [ NAME SERVER Role Play ADMIN ZONE BMW'S ]

    AddStaticVehicle(466,2109.7168,-1148.0809,1052.6907,94.7575,6,6); // BMW1
    AddStaticVehicle(466,2109.5457,-1142.8895,1052.6918,90.8498,6,6); // BMW2
    AddStaticVehicle(466,2109.3809,-1137.7531,1052.6907,90.8015,6,6); // BMW3
    AddStaticVehicle(466,2078.5022,-1149.8744,1052.6508,271.6696,6,6); // BMW4
    AddStaticVehicle(466,2077.9929,-1142.7198,1052.6511,270.5048,6,6); // BMW5
    AddStaticVehicle(466,2077.5610,-1137.2969,1052.6519,269.9786,6,6); // BMW6

   //=========================== [ END ADMIN ZONE CAR'S ]

 

 

//====================================

Ну и не забудьте добавить команду в /ahelp

 

                    {ffffff}/az{FFFFFF} - телепорт в зону адм\n\

//====================================

 

 

 

ВРОДЕ ВСЕ! МОЖЕТЕ ОЦЕНИТЬ МОЮ ДОРАБОТКУ В КОММЕНТАРИЯХ, ЕСЛИ БУДУТ НОВОСТИ, ДОБАВЛЮ!

cr-mp-002.png

cr-mp-000.png

cr-mp-001.png

Отредактировано пользователем DEST

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

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

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


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

если проблема с машинами, а именно "они невидимые", в команде изменить setplayerinterior на 0, и virtualworld на 0, но когда игрок будет проезжать или же проходить под админ зоной, он будет видеть на карте Треугольники или прямоугольники, типа что там вверху есть машины.

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


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

{ffffff}/az{FFFFFF} - телепорт в зону адм\n\ А зачем там два

 {FFFFFF}

?

 

Что-то я вообще не вдупляю зачем это два раза?

    SetPlayerPos(playerid, 2077.1770,-1187.7722,1049.8934); //adminzonee  == 2077.1770,-1187.7722,1049.8934 (старая инта)
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,2);

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


Ссылка на сообщение
Поделиться на другие сайты
В 05.11.2019 в 19:52, DeonTade сказал:

{ffffff}/az{FFFFFF} - телепорт в зону адм\n\ А зачем там два


 {FFFFFF}

?

 

Что-то я вообще не вдупляю зачем это два раза?


    SetPlayerPos(playerid, 2077.1770,-1187.7722,1049.8934); //adminzonee  == 2077.1770,-1187.7722,1049.8934 (старая инта)
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,2);

Мне так удобнее, меняй, если не нравиться.

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


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

Тупо даю минус, из-за тупых ошибок

 

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


Ссылка на сообщение
Поделиться на другие сайты
В 03.12.2019 в 20:44, Clement Dev сказал:

Тупо даю минус, из-за тупых ошибок

 

Твое право :D

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


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

Тогда уж, так:
 

CMD:az(playerid, params[])
{
    if(admin_ban_time[playerid] > 0) return SendErr(playerid, "Ваши админ-действия на сервере заблокированы"); // удаляем если ваш мод не такой)
    if(p_info[playerid][pAdmin] < 1) return 1; // заменяем на свои проверки
    extract params -> new id; else
    return SendClientMessage(playerid, 0xCC0000FF, "[!] /az [id]");

    if(!IsPlayerConnected(id))
    return SendClientMessage(playerid, 0xCC0000FF, "[!] Выбранный вами игрок не в игре!");

    SetPlayerPos(id, 2077.1770,-1187.7722,1049.8934); //adminzonee  == 2077.1770,-1187.7722,1049.8934 (старая инта)
    SetPlayerInterior(id, 0);
    SetPlayerVirtualWorld(id, 0);
    SendClientMessage(id, 0xFFFFFFFF,"Администратор телепортировал Вас в {FF0000}Админ-Зону");
    new string[72];
    format(string, sizeof(string), "[A] {FFCC33}%s[%d] {FFFFFF}телепортировал в {FF0000}Админ-Зону %s[%d]", GetName(playerid), playerid, GetName(id), id);
    SendAdminMessage(COLOR_ADMIN, string);
    return true;
}

 

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


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

Братик, ошибка в твоем коде одна - Если я пишу ID игрока то зачем телепортирует меня? Проблемы в самом коде тоже есть, если исправишься "+" получишь :)

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


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

чел норм конечно  ноо playerid вместо  id и  очень много переменных ну норм воще

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


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

error 017: undefined symbol "GetName"
 

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


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

@SenyaLi_e, добавьте в мод функцию:

stock getName(const playerid) {
    new playerName[MAX_PLAYER_NAME + 1];
    GetPlayerName(playerid, playerName, sizeof playerName);
    return playerName;
}

 

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


Ссылка на сообщение
Поделиться на другие сайты
else if(strcmp(cmd, "/az"true) == 0)
    {
        if(PlayerInfo[playerid][pAdmin]==0)return false;
        if(!sscanf(params,"u",params[0]))
        {
            SetPlayerPos(params[0],2324.419921,-1145.568359,1050.710083);
            SetPlayerInterior(params[0],12);
            SetPlayerVirtualWorld(params[0],1);
            format(stringer, sizeof(stringer), "Администратор %s[%d] телепортировал вас на собеседование",PlayerInfo[playerid][pNames],playerid);
            SendClientMessage(params[0], COLOR_LIGHTRED, stringer);
        }
        SetPlayerPos(playerid,2324.419921,-1145.568359,1050.710083);
        SetPlayerInterior(playerid,12);
        SetPlayerVirtualWorld(playerid,1);
        return true;
    }

И жить станет проще
 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • Chopick
      От Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?