PDA

Просмотр полной версии : [CMD] Назначение на админку 100 % копия Advance RP (Mysq)



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

Итак начнём:

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

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



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

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


Для CMD:



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

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


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

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

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


http://ihost.pro-pawn.ru/image.php?di=EPPW


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

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


http://ihost.pro-pawn.ru/image.php?di=JPFB


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

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


http://ihost.pro-pawn.ru/image.php?di=H0FQ


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

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

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

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

Итак:

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

http://i.imgur.com/FyNhKNs.png


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

http://i.imgur.com/jwnoqC0.png

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

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

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

Как ставить на админку:
https://youtu.be/FhLbC7UuPBA

gangzone.ini
21.11.2015, 19:37
1. Вам в "Мануалы".
2. Сдесь только прототип, т.к на Advance назначение на админку через сайт.

Danny_Marcelo
21.11.2015, 20:17
1. Вам в "Мануалы".
2. Сдесь только протатип, т.к на Advance назначение на админку через сайт.

1.Ошибся разделом
2.Как раз таки на Advance RP точно так же,можно и через сайт,но это берется из базы данных.Доступ только Ринго и Смарта.

gangzone.ini
21.11.2015, 22:20
1.Ошибся разделом
2.Как раз таки на Advance RP точно так же,можно и через сайт,но это берется из базы данных.Доступ только Ринго и Смарта.

Эм, Смарт назначает на админку через сайт, спорить может не будешь?

Danny_Marcelo
22.11.2015, 00:15
Эм, Смарт назначает на админку через сайт, спорить может не будешь?

Может ты спорить не будешь? Если что сайт,форум и все сервера связаны в одну базу данных.И назнаются по этой системе.У любого администратора знающего человека спроси.Или у админов знакомых,если такие имеются.

Desulaid
22.11.2015, 00:18
Чет идея создания отдельной таблицы в базе мне не очень нравится. Я у одменов так же делал, но все в одной таблице со всеми аккаунтами.

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


// 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} > 1 && p_admin_logged{%0} == 0

// если модератор авторизовалс¤ как модератор
#define IsModerLogged(%0) \
p_admin{%0} > 1 && 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(playerid, params[])
{
if(p_logged{playerid} == 0)
return 1;

if(IsModerLogged(playerid))
return SendClientMessage(playerid, 0xC2C2C2AA, "Вы уже прошли авторизацию.");

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(playerid, playerid, 0x00FF00AA, "Вы авторизовались как ", str);
}
return 1;
}

COMMAND:addmoder(playerid, params[])
{
if(p_logged{playerid} == 0)
return 1;

if(p_admin{playerid} < 1)
return 1;

if(IsModerNotLogged(playerid))
return SendClientMessage(playerid, 0xC2C2C2AA, "Авторизуйтесь в /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(playerid, 0xC2C2C2AA, "Он уже является модератором на сервере!");

if(params[1] > 5 || params[1] < 1)
return SendClientMessage(playerid, 0xC2C2C2AA, "Уровень не может быть больше 5 и меньше 1!");

new str[MAX_PLAYER_NAME+36+8+1];

p_admin{params[0]} = params[1];
p_admin_id[params[0]] = random_min_max(111111, 999999);
random_abc(p_admin_password[params[0]]);

SendClientMessage(params[0], -1, "");
SendFormatedMessage(params[0], str, 0xFF0033FF, "%s сделал вас модератором {FFFFFF}%d-го уровня.", p_name[playerid], p_admin[params[0]]);
SendFormatedMessage(params[0], str, 0xFF0033FF, "Ваш личный модер-пароль: {FFFFFF}%s", p_admin_password[params[0]]);
SendFormatedMessage(params[0], str, 0xFF0033FF, "Ваш личный 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));
}

Danny_Marcelo
22.11.2015, 03:58
Чет идея создания отдельной таблицы в базе мне не очень нравится. Я у одменов так же делал, но все в одной таблице со всеми аккаунтами.

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


// 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} > 1 && p_admin_logged{%0} == 0

// если модератор авторизовалс¤ как модератор
#define IsModerLogged(%0) \
p_admin{%0} > 1 && 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(playerid, params[])
{
if(p_logged{playerid} == 0)
return 1;

if(IsModerLogged(playerid))
return SendClientMessage(playerid, 0xC2C2C2AA, "Вы уже прошли авторизацию.");

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(playerid, playerid, 0x00FF00AA, "Вы авторизовались как ", str);
}
return 1;
}

COMMAND:addmoder(playerid, params[])
{
if(p_logged{playerid} == 0)
return 1;

if(p_admin{playerid} < 1)
return 1;

if(IsModerNotLogged(playerid))
return SendClientMessage(playerid, 0xC2C2C2AA, "Авторизуйтесь в /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(playerid, 0xC2C2C2AA, "Он уже является модератором на сервере!");

if(params[1] > 5 || params[1] < 1)
return SendClientMessage(playerid, 0xC2C2C2AA, "Уровень не может быть больше 5 и меньше 1!");

new str[MAX_PLAYER_NAME+36+8+1];

p_admin{params[0]} = params[1];
p_admin_id[params[0]] = random_min_max(111111, 999999);
random_abc(p_admin_password[params[0]]);

SendClientMessage(params[0], -1, "");
SendFormatedMessage(params[0], str, 0xFF0033FF, "%s сделал вас модератором {FFFFFF}%d-го уровня.", p_name[playerid], p_admin[params[0]]);
SendFormatedMessage(params[0], str, 0xFF0033FF, "Ваш личный модер-пароль: {FFFFFF}%s", p_admin_password[params[0]]);
SendFormatedMessage(params[0], str, 0xFF0033FF, "Ваш личный 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));
}

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

gangzone.ini
22.11.2015, 16:34
Может ты спорить не будешь? Если что сайт,форум и все сервера связаны в одну базу данных.И назнаются по этой системе.У любого администратора знающего человека спроси.Или у админов знакомых,если такие имеются.

Хехе, лол.

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

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

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

newbie01
22.11.2015, 21:41
У тебя ошибка в названии темы "(Mysq)", я думаю не надо говорить как правильно.

Danny_Marcelo
23.11.2015, 14:42
Хехе, лол.

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

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

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

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

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


У тебя ошибка в названии темы "(Mysq)", я думаю не надо говорить как правильно.

Сори,не заметил.Модераторы исправьте пожалуйста!

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

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



Сори,не заметил.Модераторы исправьте пожалуйста!

Эм, тебе одно, ты другое >_< В чем тут 100% копии расскажи мне, если с сайта назначение идёт, а не через саму БД...

Danny_Marcelo
25.11.2015, 14:00
Эм, тебе одно, ты другое >_< В чем тут 100% копии расскажи мне, если с сайта назначение идёт, а не через саму БД...

Раньше,когда сайт не был таким многофункциональным,делали именно так,а теперь через сайт,но все это происходит по сути по этой же функции.Прописывает через сайт,сохранение идет в эту таблицу,затем игрок прописывает /adm,ему даётся админка,а из этой таблицы игрок удаляется.Что не понятного я не пойму ~_~ Я очень сильно углублялся в подробности Advance RP.И играл там с самого начала его основания,по этому смело так могу рассказывать это.Таичи Асакура был админом на грин сервере,он же создал копию,он все это знает абсолютно все подробности!

iWors
25.03.2016, 13:41
Еще вопросы?

https://youtu.be/JEb2hFbmU6s

Danny_Marcelo
17.04.2016, 23:50
Еще вопросы?

https://youtu.be/JEb2hFbmU6s

Если сделать User Control Panel,то вполне можно и через сайт. У меня же её нет,по этому предоставил для тех,у кого нет UCP. На ARP назначение через сайт идёт именно так через данную систему. То есть сайт берёт данные из базы данных.

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

Тема обновлена!

1. Добавлена команда для движка CMD.
2. Сделана проверка на организацию.
3.Уменьшено значение переменной "mquery" с 256 на 119. Подсчитал "iWors"
4. Обновлены скриншоты.

gangzone.ini
18.04.2016, 01:57
Если сделать User Control Panel,то вполне можно и через сайт. У меня же её нет,по этому предоставил для тех,у кого нет UCP. На ARP назначение через сайт идёт именно так через данную систему. То есть сайт берёт данные из базы данных.

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

Тема обновлена!

1. Добавлена команда для движка CMD.
2. Сделана проверка на организацию.
3.Уменьшено значение переменной "mquery" с 256 на 119. Подсчитал "iWors"
4. Обновлены скриншоты.

Ну, а сообщение выводит после ввода /adm ? - нет) Так что это породия, а не 100% ARP)

Danny_Marcelo
18.04.2016, 02:02
Ну, а сообщение выводит после ввода /adm ? - нет) Так что это породия, а не 100% ARP)

Как не выводит? В моде глянь сначала, как эта система работает,а потом говори,хорошо? И кстати,ты мне говорила,что оригинальный мод Scorpion у тебя на руках. А я именно оттуда вырезал данную систему. Плохо значит знаешь мод Scoprion RP)

Вот даже проверка есть в коде)




PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "account_adm_level", dbHandle);
SendClientMessage(playerid, CYELLOW, "Ваш уровень администратора был изменён");

gangzone.ini
18.04.2016, 02:55
Как не выводит? В моде глянь сначала, как эта система работает,а потом говори,хорошо? И кстати,ты мне говорила,что оригинальный мод Scorpion у тебя на руках. А я именно оттуда вырезал данную систему. Плохо значит знаешь мод Scoprion RP)

Вот даже проверка есть в коде)




PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "account_adm_level", dbHandle);
SendClientMessage(playerid, CYELLOW, "Ваш уровень администратора был изменён");


Боже... Один сказал - копия, второй повторил... Ты был администратором на АРП? - Видимо нет...
Когда тебе Смарт прописывает админку, ты заходишь в игру, прописываешь /adm, нечего не пишит.
После релогаешься и у тебя админка. В Scorpion Rp только 50% копии ARP...

Danny_Marcelo
18.04.2016, 03:59
Боже... Один сказал - копия, второй повторил... Ты был администратором на АРП? - Видимо нет...
Когда тебе Смарт прописывает админку, ты заходишь в игру, прописываешь /adm, нечего не пишит.
После релогаешься и у тебя админка. В Scorpion Rp только 50% копии ARP...

Вот как раз таки тут ты ошибаешься. Когда вводишь /adm на оригинальном Advance RP,там пишет игроку "Ваш уровень администратора был изменён"
Я уже скидывал тебе видео с повышения администратора. Но ты не посмотрев видео даже усираешься, что якобы все это не так. Я не был на админке ARP и не скрываю этого,но у меня полно друзей,который этот прошли и показывали мне скриншоты и по скайпу) А вот ты видимо только от слухов все знаешь об Advance RP)

Ещё раз кидаю тебе видео. Посмотри в самом начале видео ВНИМАТЕЛЬНО, а потом уж спорь ;)


https://youtu.be/hHNrdeg4Yig

TheMallard
18.04.2016, 05:24
Да вы все быдлокодеры! Задолбали со своими копиями, что gangzone, что ТС, бесит уже, делайте по своему!

Danny_Marcelo
19.04.2016, 07:45
Да вы все быдлокодеры! Задолбали со своими копиями, что gangzone, что ТС, бесит уже, делайте по своему!

Такой умный что ли? Напиши тогда лучше,раз такой мега-скриптер) Сказать все что угодно можно. А ты вот обоснуй свои слова. Я многих таких видел,которые пишут быдлокод,а сами копируют команды с других модов)))

Danny_Marcelo
21.04.2016, 03:02
Тема обновлена!

1. Изменёны текста под копию ARP.

2. Добавлены скриншоты назначения на админку ARP. (Не реклама).

3. Переставил проверку на организацию в другое место. Теперь точная копия ARP.

$continue$
21.04.2016, 07:52
Ко-ко-ко, сделай сам, а потом уже критикуй. Ага. Вы порталом ошиблись -_-

Такой умный что ли? Напиши тогда лучше,раз такой мега-скриптер) Сказать все что угодно можно. А ты вот обоснуй свои слова. Я многих таких видел,которые пишут быдлокод,а сами копируют команды с других модов)))

Danny_Marcelo
21.04.2016, 20:39
Ко-ко-ко, сделай сам, а потом уже критикуй. Ага. Вы порталом ошиблись -_-

Чем этот портал не подходит?) Что он чем то хуже или лучше других? Нет. Такой же как и другие. Из профессионалов тут только Daniel_Cortez и еще несколько человек,а остальные тут такие же "ПРОФЕССИОНАЛЫ" сидят)