11 posts in this topic

static const stock pAdminName[12][80] = { 
    {"Практикант"}, 
    {"Ст.Практикант"}, 
    {"Мл.Модератор"}, 
    {"Модератор"}, 
    {"Ст.Модератор"}, 
    {"Гл.Модератор"}, 
    {"Мл.Администратор"}, 
    {"Администратор"}, 
    {"Ст.Администратор"}, 
    {"Гл.Администратор"}, 
    {"Спец.Администратор"}, 
    {"Основатель"} 
}; 
static const stock pPrefixName[17][80] = { 
    {"Неизвестно"}, 
    {"Создатель проекта"}, 
    {"Разработчик проекта"}, 
    {"Скриптер проекта"}, 
    {"Руководитель проекта"}, 
    {"Следящий за гетто"}, 
    {"Следящий за гос.структурами"}, 
    {"Следящий за мафиями"}, 
    {"Следящий за саппортами"}, 
    {"Следящий саппортами"}, 
    {"Заместитель основателя"}, 
    {"Спонсор проекта"}, 
    {"V.I.P. Администратор"}, 
    {"Без названия"}, 
    {"Без названия"}, 
    {"Без названия"}, 
    {"Без названия"} 
}; 

Добавить в PlayerInfo, загрузку, сохранение: prefix_id 

Добавление префикса:
 

CMD:addprefix(playerid, params[]) 
{ 
    if(!strcmp(PlayerInfo[playerid][pNames], FD1, true) || !strcmp(PlayerInfo[playerid][pNames], FD2, true) || !strcmp(PlayerInfo[playerid][pNames], FD3, true)) 
    { 
        if(PlayerInfo[playerid][pAlcoInvenxua] != 12) return 1; 
        new targetid_prefix, number_prefix; 
        if(sscanf(params, "ii",targetid_prefix, number_prefix)) 
        { 
            SendClientMessage(playerid, COLOR_WHITE, "Введите /addprefix [id] [id префикса]"); 
            SendClientMessage(playerid, COLOR_WHITE, "0 - УБРАТЬ, 1 - Создатель проекта, 2 - Разработчик проекта, 3 - Скриптер проекта"); 
            SendClientMessage(playerid, COLOR_WHITE, "4 - Руководитель проекта, 5 - Следящий за гетто, 6 - Следящий за гос.структурами, 7 - Следящий за мафиями"); 
            SendClientMessage(playerid, COLOR_WHITE, "8 - Следящий за Саппортами, 9 - Следящий Саппортами, 10 - Заместитель основателя, 11 - Спонсор проекта"); 
            return SendClientMessage(playerid, COLOR_WHITE, "12 - V.I.P. Администратор, 13 - Без названия, 14 - Без названия, 15 - Без названия"); 
        } 
        if(PlayerInfo[targetid_prefix][pAlcoInvenxua] <= 0) return SendClientMessage(playerid, COLOR_WHITE, "Человек не администратор!"); 
        if(number_prefix != 0) 
        { 
            PlayerInfo[targetid_prefix][prefix_id] = number_prefix; 
             format(stringer1, sizeof(stringer1), "Главный администратор %s назначил администратора %s на должность %s", PlayerInfo[playerid][pNames], PlayerInfo[targetid_prefix][pNames], pPrefixName[PlayerInfo[targetid_prefix][prefix_id]]); 
              SendClientMessageToAll(COLOR_LIGHTRED, stringer1); 
        } 
        else 
        { 
            format(stringer1, sizeof(stringer1), "Главный администратор %s снял администратора %s с должности %s", PlayerInfo[playerid][pNames], PlayerInfo[targetid_prefix][pNames], pPrefixName[PlayerInfo[targetid_prefix][prefix_id]]); 
              SendClientMessageToAll(COLOR_LIGHTRED, stringer1); 
              PlayerInfo[targetid_prefix][prefix_id] = number_prefix; 
        } 
    } 
    return 1; 
} 

Пример команды:
 


CMD:admin(playerid, params[]) 
{ 
    if(PlayerInfo[playerid][pAlcoInvenxua] == 0) return true; 
    if(sscanf(params, "s[128]",params[0])) return SendClientMessage(playerid, COLOR_WHITE, ""cInf2o"Введите: (/a)dmin [текст]"); 
    format(stringer1, sizeof(stringer1), "[A] {01FCFF}[%s]{FFFFFF} %s[%d]: %s", (PlayerInfo[playerid][prefix_id] != 0) ? (pPrefixName[PlayerInfo[playerid][prefix_id]]) : (pAdminName[PlayerInfo[playerid][pAlcoInvenxua]-1]), PlayerInfo[playerid][pNames], playerid, params[0]); 
    SendAdminMessage(COLOR_WHITE, stringer1); 
    return true; 
}  

 

Share this post


Link to post
Share on other sites

У меня ошибки можите помочь мой вк vk.com/edgar221

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

Задавайте вопрос в соответствующем разделе форума.

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

В следующий раз будет приравнено к оффтопу.
Устное предупреждение

Share this post


Link to post
Share on other sites

Достаточно простая команда и можно было бы сделать немного легче. Но все таки +

Share this post


Link to post
Share on other sites

На MxINI есть?

 

Share this post


Link to post
Share on other sites

@SlenderTop4ik так а причем здесь mxINI, тут не сделано сохранение. Его нужно сделать самостоятельно

В 10.02.2018 в 08:23, Jaliba Baron сказал:

Добавить в PlayerInfo, загрузку, сохранение: prefix_id 

 

Share this post


Link to post
Share on other sites

Данная команда была вырезана из мода Delemure RP (SAMP 0.3.7) 

 

Share this post


Link to post
Share on other sites

А куда добавлять префикси то?

 

Share this post


Link to post
Share on other sites

А что если нету playerinfo?

 

Share this post


Link to post
Share on other sites

@CrmpILove, замени своей переменной.

Share this post


Link to post
Share on other sites

жаль нету сохранений

Share this post


Link to post
Share on other sites

помогите мне сделать такую штуку

 

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • DRA GON
    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры