12 posts in this topic

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

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

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

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

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

 

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

 

 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

Edited by DEST

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

{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);

Share this post


Link to post
Share on other sites
В 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);

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
В 03.12.2019 в 20:44, Clement Dev сказал:

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

 

Твое право :D

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

error 017: undefined symbol "GetName"
 

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
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;
    }

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Chopick
      By 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; }  
       
      Что мне делать, подскажите пожалуйста?