Leon_Colors
Умник
Всем привет выкладываю команду /alogin причина я сам долго искал его не мог найти все такое командный были на DCMD или YCMD Вот решил сделать сам Может кому понадобиться.
К define
Ко всем new
К командам
Ко всем диалогам
Куда угодно
В базу данных добавляем эти строки
Вот и всё от + не откажусь
И вот ещё если вам что нить не нравиться засуньте это что нить себе в одно место.
Скайп: ashablider
ВК:
К define
PHP:
#define D_ADMIN 5
PHP:
new DATABASE;
new QUERY[2524];
new AdminKey[MAX_PLAYERS][32];
PHP:
else if(strcmp(cmd, "/alogin", true) == 0)
{
if(!strcmp(AdminKey[playerid],"0",true)) return ShowPlayerDialog(playerid, D_ADMIN+1, 1, "{FF8300}Регистрация пароля", "{ffffff}Создайте персональный пароль для доступа к правам администратора\n{FF8300}Длина пароля от 6 до 14 символов\nВ пароле должны присутствовать символы a-z, A-Z", "Создать", "Отмена");
if(GetPVarInt(playerid,"AdminLogin") > 0)
{
new string[90];
format(string,90,"< ALogin > %s(%i) вышел, лвл %i",PlayerInfo[playerid][pNames],playerid,GetPVarInt(playerid,"Admins"));
SendAdmin(string,COLOR_YELLOW);
SetPVarInt(playerid,"AdminLogin",0);
return true;
}
ShowPlayerDialog(playerid, D_ADMIN, 1, "{FF8300}Авторизация", "{FFFFFF}Введите ваш персональный пароль от администраторской панели в данное окно.\n{FF8300}В пароле должны присутствовать символы a-z", "Вход", "Выход");
return true;
}
else if(strcmp(cmd, "/makeadmin", true) == 0)
{
if(FD1 || FD2 || FD3 || IsPlayerAdmin(playerid))
{
tmp = strcharsplit(cmdtext, idx);
new para1 = ReturnUser(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD1, "Error: Введите: /makeadmin [id] [0-13]");
tmp = strcharsplit(cmdtext, idx);
new level = strval(tmp);
if(level > 13 || level < 0) return SendClientMessage(playerid, COLOR_GRAD1, "Error: Значение не может быть меньше 0 и больше 13!");
if(!GetPVarInt(para1,"Admins"))
{
SendMes(para1,COLOR_GOLD,"Администратор %s(%i) назначил вас администратором",PlayerInfo[playerid][pNames],playerid);
SendMes(playerid,COLOR_GOLD,"Вы назначили %s(%i) администратором",PlayerInfo[para1][pNames],para1);
mysql_format(DATABASE, QUERY, sizeof(QUERY), "INSERT INTO `admins` (`Name`, `Level`, `CheckKey`) VALUES ('%e', '1','0')",PlayerInfo[para1][pNames]);
mysql_function_query(DATABASE, QUERY, false, "", "");
SetPVarInt(para1,"Admins",1);
strmid(AdminKey[para1],"0", 0, strlen("0"), 32);
//ShowPlayerDialog(params[0], D_ADMIN+1, 1, "Авторизация(П)", "Создайте персональный пароль для доступа к правам модератора\nВ пароле должны присутствовать символы a-z", "Создать", "");
}
else
{
if(GetPVarInt(para1,"Admins") >= 6) return SendClientMessage(playerid,COLOR_GREY,"Данного человека нельзя повысить");
SetPVarInt(para1,"Admins",GetPVarInt(para1,"Admins")+1);
SendMes(para1,COLOR_GOLD,"Администратор %s(%i) повысил вас до уровня %i",PlayerInfo[playerid][pNames],playerid,GetPVarInt(para1,"Admins"));
SendMes(playerid,COLOR_GOLD,"Вы повысили %s(%i) до уровня %i",PlayerInfo[para1][pNames],para1,GetPVarInt(para1,"Admins"));
mysql_format(DATABASE, QUERY, sizeof(QUERY), "UPDATE `admins` SET `Level` = '%i'",GetPVarInt(para1,"Admins"));
mysql_format(DATABASE, QUERY, sizeof(QUERY), "%s WHERE `Name` = '%e'", QUERY, PlayerInfo[para1][pNames]);
mysql_function_query(DATABASE, QUERY, false, "", "");
}
}
return true;
}
PHP:
case D_ADMIN:
{
if(!response || GetPVarInt(playerid,"Admins") <= 0) return true;
if(strcmp(AdminKey[playerid],inputtext, false) != 0 || strlen(inputtext) <= 0) return SendClientMessage(playerid,-1,"Неверный пароль");
SetPVarInt(playerid,"AdminLogin",1);
new string[62];
format(string,62,"<ALogin> %s авторизовался. AdmLvl %i",PlayerInfo[playerid][pNames],GetPVarInt(playerid,"Admins"));
SendAdmin(string,COLOR_YELLOW);
}
case D_ADMIN+1:
{
if(!response) return true;
new null_[3];
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case 'A'..'Z': null_[0]++;
case 'a'..'z': null_[1]++;
case 'А'..'Я','а'..'я',' ': null_[2]++;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 16 || null_[2] == 1 || null_[0] == 0 || null_[1] == 0) return ShowPlayerDialog(playerid, D_ADMIN+1, 1, "{FF8300}Регистрация пароля", "Создайте персональный пароль для доступа к правам администратора\n{FF8300}Длина пароля от 6 до 14 символов\nВ пароле должны присутствовать символы a-z, A-Z", "Создать", "Отмена");
if(GetPVarInt(playerid,"Admins") <= 0) return SendClientMessage(playerid,COLOR_GREY,"Вы не администратор!");
strmid(AdminKey[playerid],inputtext, 0, strlen(inputtext), 32);
new string[52];
format(string,52,"%s - зарегистрировал пароль",PlayerInfo[playerid][pNames]);
SendAdmin(string,COLOR_YELLOW);
SendMes(playerid,COLOR_GOLD,"Ваш персональный пароль: %s. Для доступа введите /alogin",inputtext);
mysql_format(DATABASE, QUERY, sizeof(QUERY), "UPDATE `admins` SET `CheckKey` = '%s'",inputtext);
mysql_format(DATABASE, QUERY, sizeof(QUERY), "%s WHERE `Name` = '%e'", QUERY, PlayerInfo[playerid][pNames]);
mysql_function_query(DATABASE, QUERY, false, "", "");
}
PHP:
forward Admins(playerid);
public Admins(playerid)
{
new r, f,lvl,key[32];
cache_get_data(r, f);
if(r)
{
lvl = cache_get_field_content_int(0,"Level");
cache_get_field_content(0, "CheckKey",key,DATABASE,16);
SetPVarInt(playerid,"Admins",lvl);
strmid(AdminKey[playerid],key, 0, strlen(key), 32);
}
else SetPVarInt(playerid,"Admins",0), SetPVarInt(playerid,"AdminLogin",0);
return true;
}
stock SendAdmin(text[],color,level = 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPVarInt(i,"Admins") < level || !GetPVarInt(i,"AdminLogin")) continue;
else SendClientMessage(i,color,text);
}
return true;
}
PHP:
--
-- Структура таблицы `admins`
--
CREATE TABLE IF NOT EXISTS `admins` (
`Name` varchar(32) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
`Level` int(11) NOT NULL,
`CheckKey` varchar(32) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы `admins`
--
-- --------------------------------------------------------
И вот ещё если вам что нить не нравиться засуньте это что нить себе в одно место.
Скайп: ashablider
ВК:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование:
