Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 23
  1. #1
    Аватар для Danny_Marcelo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±

    Назначение на админку 100 % копия Advance RP (Mysq)

    Всем доброго времени суток.Я видел много тем,про назначение администратора,но никто так и не выложил настоящую систему назначения администратора как на ARP.Все это непохожие пародии.Сейчас Вы все узнаете как назначают на админку на таком крупно-масшабном проекте.

    Итак начнём:

    Для начала нам понадобится таблица MYSQL.Я Вам её уже подготовил:https://cloud.mail.ru/public/EaWM/WjzTffRzy

    Далее мы зайдём в мод и добавим вот эту команду:

    PHP код:
    if(strcmp(cmd"/adm"true) == && Logged[playerid] == true)
    {
        new 
    mquery[119], CacheresultCache;
        
    mysql_format(dbHandlemquerysizeof(mquery), "SELECT * FROM accounts_adm WHERE account_id = %d LIMIT 1"PlayerInfo[playerid][pIDacc]);
        
    resultCache mysql_query(dbHandlemquerytrue);
        if(
    cache_num_rows())
        {
            if(
    PlayerInfo[playerid][pMember] != 0) return SendClientMessage(playerid0xFF6600AA"Выйдите из организации и введите команду ещё раз");
            
    PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0"account_adm_level"dbHandle);
            
    SendClientMessage(playeridCYELLOW"Ваш уровень администратора был изменён");

            
    mysql_format(dbHandlemquerysizeof(mquery), "DELETE FROM accounts_adm WHERE account_id = %d"PlayerInfo[playerid][pIDacc]);
            
    mysql_pquery(dbHandlemquery);
        }
        
    cache_delete(resultCache);
        return 
    true;

    Для CMD:

    PHP код:
    CMD:adm(playeridparams[])
    {
        new 
    mquery[119], cacheresultcache;
        
    mysql_format(dbhandlemquerysizeof(mquery), "select * from accounts_adm where account_id = %d limit 1"playerinfo[playerid][pidacc]);
        
    resultcache mysql_query(dbhandlemquerytrue);
        if(
    cache_num_rows())
        {
            if(
    PlayerInfo[playerid][pMember] != 0) return SendClientMessage(playerid0xFF6600AA"Выйдите из организации и введите команду ещё раз");
            
    playerinfo[playerid][padmin] = cache_get_field_content_int(0"account_adm_level"dbhandle);
            
    sendclientmessage(playeridcyellow"ваш уровень администратора был изменён");

            
    mysql_format(dbhandlemquerysizeof(mquery), "delete from accounts_adm where account_id = %d"playerinfo[playerid][pidacc]);
            
    mysql_pquery(dbhandlemquery);
        }
        
    cache_delete(resultcache);
        return 
    true;

    Переменные заменяйте на свои т.к. у многих они другие.

    Теперь объясню принцип работы.

    Загружаем таблицу,которую я Вам скинул к себе в Базу данных

      Открыть/закрыть




    Дальше заходим в саму таблицу "accounts_adm"

    Далее нажимаем кнопку "ВСТАВИТЬ"

      Открыть/закрыть




    И теперь заполняем для того игрока,которому хотим дать админку.

    account_id - это id его аккаунта (Можно переделать на NickName)
    acount_adm_lvl - Это уровень администратора,который хотим дать.
    account_adm_password - Это пароль для администратора (Обязателен только тем,у кого есть админ авторизация через пароль на сервере.Если у вас её нету,то можете удалить эту таблицу)

      Открыть/закрыть




    После того как ввели все данные,которые я указал,нажимаем ОК

    Но важно,пока этот игрок не пропишет команду "/adm",он не сможет использовать админ команды.То есть по сути он еще не администратор.Но после того,как он введет /adm,он удалится из таблицы "accountd_adm",но при этом станет администратором.

    На Advance RP все точно так же.Команды назначения администраторов там нет.Есть только для понижения админов.Видимо это сделано,что если вдруг взломают Гл.админа,чтобы тот в свою очередь не надавал админок всем.Ну у меня всё,спасибо что почитали мою темку,от плюсиков не откажусь.

    P.S.Есть люди,которые со мной спорили. Вот вам доказательство того,что эта команда копия Advance RP.

    Итак:

    1 скриншот,когда игрока назначили администратором,но он ещё не уволился из организации:




    2 скриншот,когда игрок уволился из организации и вводит команду /adm:



    Видео можете найти на YouTube по названию) Думаю теперь у вас не появится сомнений,что это не копия Advance RP.

    Команда вырезана из мода Scorpion RP.

    Автор доработки: Danny_Marcelo


    Как ставить на админку: https://youtu.be/FhLbC7UuPBA
    Последний раз редактировалось Danny_Marcelo; 05.11.2016 в 15:00. Причина: Обновил.

  2. #2
    Аватар для gangzone.ini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    1. Вам в "Мануалы".
    2. Сдесь только прототип, т.к на Advance назначение на админку через сайт.

  3. #3
    Аватар для Danny_Marcelo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±
    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    1. Вам в "Мануалы".
    2. Сдесь только протатип, т.к на Advance назначение на админку через сайт.
    1.Ошибся разделом
    2.Как раз таки на Advance RP точно так же,можно и через сайт,но это берется из базы данных.Доступ только Ринго и Смарта.

  4. #4
    Аватар для gangzone.ini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Цитата Сообщение от Danny_Marcelo Посмотреть сообщение
    1.Ошибся разделом
    2.Как раз таки на Advance RP точно так же,можно и через сайт,но это берется из базы данных.Доступ только Ринго и Смарта.
    Эм, Смарт назначает на админку через сайт, спорить может не будешь?

  5. #5
    Аватар для Danny_Marcelo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±
    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    Эм, Смарт назначает на админку через сайт, спорить может не будешь?
    Может ты спорить не будешь? Если что сайт,форум и все сервера связаны в одну базу данных.И назнаются по этой системе.У любого администратора знающего человека спроси.Или у админов знакомых,если такие имеются.

  6. #6
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Чет идея создания отдельной таблицы в базе мне не очень нравится. Я у одменов так же делал, но все в одной таблице со всеми аккаунтами.

    Вот пример, месяц может назад делал (если не больше)

     Осторожно, код не очень))0
    PHP код:
    // SendFormatedMessage(игрок, массив, цвет, сообщение, параметры)
    #define SendFormatedMessage(%0,%1,%2,%3,%4) \
        
    format(%1,sizeof(%1),%3,%4), SendClientMessage(%0,%2,%1
        
    // random_min_max(маленькое число, большое число)
    #define random_min_max(%1,%2) \
        
    random(%2-%1)+%1

    // если модератор не авторизовалс¤ как модератор
    #define IsModerNotLogged(%0) \
        
    p_admin{%0} > && p_admin_logged{%0} == 0

    // если модератор авторизовалс¤ как модератор
    #define IsModerLogged(%0) \
        
    p_admin{%0} > && p_admin_logged{%0} == 1

    static const 
        
    admin_ranks[5][] =
        
    // ранги администраторов
        
    {
            
    "практикант",
            
    "модератор",
            
    "ст. модератор",
            
    "мл. администратор",
            
    "администратор"
        
    }
    ;
    // уведомление модератору с прикрепленным рангом
    #define SendRankMessage(%4,%0,%3,%1,%2) \
            
    (  \
                %
    2=%1,  \
                
    strcat(%2,admin_ranks[p_admin{%0}-1]),  \
                
    SendClientMessage(%4,%3,%2)  \
            )
        
    // максимальная длинна пароля модератора    
    #define MAX_ADMIN_PASSWORD 6

    new 
        
    p_logged[MAX_PLAYERS char],
        
    p_admin[MAX_PLAYERS char],
        
    p_admin_password[MAX_PLAYERS][MAX_ADMIN_PASSWORD],
        
    p_admin_id[MAX_PLAYERS],
        
    p_admin_logged[MAX_PLAYERS char]
    ;

    COMMAND:aduty(playeridparams[])
    {
        if(
    p_logged{playerid} == 0
            return 
    1;
        
        if(
    IsModerLogged(playerid))
            return 
    SendClientMessage(playerid0xC2C2C2AA"Вы уже прошли авторизацию.");
        
        if(
    sscanf(params"s[7]"params[0]))
            return 
    SendClientMessage(playerid, -1"Введите /aduty [password]");
        
        if(
    strfind(params[0], p_admin_password[playerid], true) != -1)
        {
            new 
    str[41];
            
    p_admin_logged{playerid} = 1;
            
    SendRankMessage(playeridplayerid0x00FF00AA"Вы авторизовались как "str);
        }
        return 
    1;
    }

    COMMAND:addmoder(playeridparams[])
    {
        if(
    p_logged{playerid} == 0)
            return 
    1;
        
        if(
    p_admin{playerid} < 1
            return 
    1;
        
        if(
    IsModerNotLogged(playerid))
            return 
    SendClientMessage(playerid0xC2C2C2AA"Авторизуйтесь в /aduty [password]");
        
        if(
    p_admin{playerid} < 5
            return 
    1;
        
        if(
    sscanf(params"ui"params[0], params[1]))
            return 
    SendClientMessage(playerid, -1"Введите /addmoder [id] [level]");
        
        if(
    p_admin{params[0]} > 1)
            return 
    SendClientMessage(playerid0xC2C2C2AA"Он уже является модератором на сервере!");
        
        if(
    params[1] > || params[1] < 1)
            return 
    SendClientMessage(playerid0xC2C2C2AA"Уровень не может быть больше 5 и меньше 1!");
        
        new 
    str[MAX_PLAYER_NAME+36+8+1];
        
        
    p_admin{params[0]} = params[1];
        
    p_admin_id[params[0]] = random_min_max(111111999999);
        
    random_abc(p_admin_password[params[0]]);
        
        
    SendClientMessage(params[0], -1"");
        
    SendFormatedMessage(params[0], str0xFF0033FF"%s сделал вас модератором {FFFFFF}%d-го уровня."p_name[playerid], p_admin[params[0]]);
        
    SendFormatedMessage(params[0], str0xFF0033FF"Ваш личный модер-пароль: {FFFFFF}%s"p_admin_password[params[0]]);
        
    SendFormatedMessage(params[0], str0xFF0033FF"Ваш личный moderID {FFFFFF}%d"p_admin_id[params[0]]);
        
    SendClientMessage(params[0], -1"(скриншот F8)");
        
    SendClientMessage(params[0], -1"");
        return 
    1;
    }
    ALTX:addmoder("/addm");

    stock random_abc(array[])
    // случайное месево букв и цифр
    {    
        
    format(array, 7"%c%c%d%c%d%c"65+random(26), 97+random(26), random(10), 65+random(26), random(10), 65+random(26));


  7. #7
    Аватар для Danny_Marcelo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    Чет идея создания отдельной таблицы в базе мне не очень нравится. Я у одменов так же делал, но все в одной таблице со всеми аккаунтами.

    Вот пример, месяц может назад делал (если не больше)

     Осторожно, код не очень))0
    PHP код:
    // SendFormatedMessage(игрок, массив, цвет, сообщение, параметры)
    #define SendFormatedMessage(%0,%1,%2,%3,%4) \
        
    format(%1,sizeof(%1),%3,%4), SendClientMessage(%0,%2,%1
        
    // random_min_max(маленькое число, большое число)
    #define random_min_max(%1,%2) \
        
    random(%2-%1)+%1

    // если модератор не авторизовалс¤ как модератор
    #define IsModerNotLogged(%0) \
        
    p_admin{%0} > && p_admin_logged{%0} == 0

    // если модератор авторизовалс¤ как модератор
    #define IsModerLogged(%0) \
        
    p_admin{%0} > && p_admin_logged{%0} == 1

    static const 
        
    admin_ranks[5][] =
        
    // ранги администраторов
        
    {
            
    "практикант",
            
    "модератор",
            
    "ст. модератор",
            
    "мл. администратор",
            
    "администратор"
        
    }
    ;
    // уведомление модератору с прикрепленным рангом
    #define SendRankMessage(%4,%0,%3,%1,%2) \
            
    (  \
                %
    2=%1,  \
                
    strcat(%2,admin_ranks[p_admin{%0}-1]),  \
                
    SendClientMessage(%4,%3,%2)  \
            )
        
    // максимальная длинна пароля модератора    
    #define MAX_ADMIN_PASSWORD 6

    new 
        
    p_logged[MAX_PLAYERS char],
        
    p_admin[MAX_PLAYERS char],
        
    p_admin_password[MAX_PLAYERS][MAX_ADMIN_PASSWORD],
        
    p_admin_id[MAX_PLAYERS],
        
    p_admin_logged[MAX_PLAYERS char]
    ;

    COMMAND:aduty(playeridparams[])
    {
        if(
    p_logged{playerid} == 0
            return 
    1;
        
        if(
    IsModerLogged(playerid))
            return 
    SendClientMessage(playerid0xC2C2C2AA"Вы уже прошли авторизацию.");
        
        if(
    sscanf(params"s[7]"params[0]))
            return 
    SendClientMessage(playerid, -1"Введите /aduty [password]");
        
        if(
    strfind(params[0], p_admin_password[playerid], true) != -1)
        {
            new 
    str[41];
            
    p_admin_logged{playerid} = 1;
            
    SendRankMessage(playeridplayerid0x00FF00AA"Вы авторизовались как "str);
        }
        return 
    1;
    }

    COMMAND:addmoder(playeridparams[])
    {
        if(
    p_logged{playerid} == 0)
            return 
    1;
        
        if(
    p_admin{playerid} < 1
            return 
    1;
        
        if(
    IsModerNotLogged(playerid))
            return 
    SendClientMessage(playerid0xC2C2C2AA"Авторизуйтесь в /aduty [password]");
        
        if(
    p_admin{playerid} < 5
            return 
    1;
        
        if(
    sscanf(params"ui"params[0], params[1]))
            return 
    SendClientMessage(playerid, -1"Введите /addmoder [id] [level]");
        
        if(
    p_admin{params[0]} > 1)
            return 
    SendClientMessage(playerid0xC2C2C2AA"Он уже является модератором на сервере!");
        
        if(
    params[1] > || params[1] < 1)
            return 
    SendClientMessage(playerid0xC2C2C2AA"Уровень не может быть больше 5 и меньше 1!");
        
        new 
    str[MAX_PLAYER_NAME+36+8+1];
        
        
    p_admin{params[0]} = params[1];
        
    p_admin_id[params[0]] = random_min_max(111111999999);
        
    random_abc(p_admin_password[params[0]]);
        
        
    SendClientMessage(params[0], -1"");
        
    SendFormatedMessage(params[0], str0xFF0033FF"%s сделал вас модератором {FFFFFF}%d-го уровня."p_name[playerid], p_admin[params[0]]);
        
    SendFormatedMessage(params[0], str0xFF0033FF"Ваш личный модер-пароль: {FFFFFF}%s"p_admin_password[params[0]]);
        
    SendFormatedMessage(params[0], str0xFF0033FF"Ваш личный moderID {FFFFFF}%d"p_admin_id[params[0]]);
        
    SendClientMessage(params[0], -1"(скриншот F8)");
        
    SendClientMessage(params[0], -1"");
        return 
    1;
    }
    ALTX:addmoder("/addm");

    stock random_abc(array[])
    // случайное месево букв и цифр
    {    
        
    format(array, 7"%c%c%d%c%d%c"65+random(26), 97+random(26), random(10), 65+random(26), random(10), 65+random(26));

    Ну как говорится на вкус и цвет товарища нет)

  8. #8
    Аватар для gangzone.ini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Цитата Сообщение от Danny_Marcelo Посмотреть сообщение
    Может ты спорить не будешь? Если что сайт,форум и все сервера связаны в одну базу данных.И назнаются по этой системе.У любого администратора знающего человека спроси.Или у админов знакомых,если такие имеются.
    Хехе, лол.

    2012-2013 - назначение на админку было через команду.
    2013-2015 - назначение на админку через сайт.

    Как ставят на админку:
    1. Гл.Администратор кидает в скайп бланк, который надо заполнить (Имя, возраст и т.д)
    2. Гл.Администратор создаёт в админ.разделе тему о назначение на админку с твоими данными и проходит голосование среди админов.
    3. Если заявку одобрили, звонят в скайп ГА, ЗГА и почти всегда Смарт.
    4. ГА говорит Смарту прописать админку, Смарт заходит на сайт и прописывает.

    Это информация от меня/бывшего админа 4 лвл/бывшего гл.админа

  9. #9
    Аватар для newbie01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    116
    Репутация:
    10 ±
    У тебя ошибка в названии темы "(Mysq)", я думаю не надо говорить как правильно.

  10. #10
    Аватар для Danny_Marcelo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±
    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    Хехе, лол.

    2012-2013 - назначение на админку было через команду.
    2013-2015 - назначение на админку через сайт.

    Как ставят на админку:
    1. Гл.Администратор кидает в скайп бланк, который надо заполнить (Имя, возраст и т.д)
    2. Гл.Администратор создаёт в админ.разделе тему о назначение на админку с твоими данными и проходит голосование среди админов.
    3. Если заявку одобрили, звонят в скайп ГА, ЗГА и почти всегда Смарт.
    4. ГА говорит Смарту прописать админку, Смарт заходит на сайт и прописывает.

    Это информация от меня/бывшего админа 4 лвл/бывшего гл.админа
    ОМГ... Я тебе еще раз объясняю,что сайт взаимосвязан с базой данных Advance RP,так что когда Смарт прописывает на сайте админку,сохранение идет а такую же таблицу,а потом когда игрок прописывает /adm,ему даётся админка,а из данной таблицы он удаляется.Читай тему внимательнее!!!

    - - - Добавлено - - -

    Цитата Сообщение от newbie01 Посмотреть сообщение
    У тебя ошибка в названии темы "(Mysq)", я думаю не надо говорить как правильно.
    Сори,не заметил.Модераторы исправьте пожалуйста!

 

 
Страница 1 из 3 1 2 3 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •