• 0
AnimeshniK

Помогите с Админкой при входе ! MYSQL

Question

CMD:makeadmin(playerid, params[])
{
	if(!IsPlayerConnected(playerid) || !PlayerInfo[playerid][pLogin]) return 1;
	if(FULL_1 || FULL_2 || FULL_3)
	{
		new ID,Level;
		if(sscanf(params, "dd",ID,Level) || !IsPlayerConnected(ID)) return SendClientMessage(playerid, COLOR_BLUE, "Используйте: {ffffff}/setnewadmin [ id ] [ 1-14 ]");
		if((!strcmp(PlayerInfo[ID][pNames], FD1, true) || !strcmp(PlayerInfo[ID][pNames], FD2, true)) && Level < 1) return SendClientMessage(playerid, 0xFF0000FF, "[Ошибка] {ffffff}Запрещено снять разработчика!");
		if(Level > 14 || Level < 0) return SendClientMessage(playerid, 0x339999FF, "[Информация] {ffffff}Значение не должно быть меньше 0 и больше 14!");
		format(string, MAX_STR, "SELECT * FROM `admin` WHERE `name` = '%s'", PlayerInfo[ID][pNames]);
		mysql_tquery(connects, string, "Moderator", "dsd",playerid,PlayerInfo[ID][pNames],Level);
		if(Level > 0) SCMF(ID, 0x3399CCFF, "%s назначил Вас администратором %d уровня. | Введите /alogin и придумайте себе пароль.", PlayerInfo[playerid][pNames], Level);
		else SCMF(ID, 0x3399CCFF, "%s снял Вас с поста администратора", PlayerInfo[playerid][pNames]);

	}
	return true;
}

Здравствуйте юзеры pawno-rus.ru.Хотел бы спросить у Людей которые умеют пользоваться Базой Данных "MySql".
Как сделать что-бы выдавались админ-права при входе на сервак ??? Вот к примеру раньше я уже такое делал,на тот момент был мод Даймонда и там в MySql просто структуру "accounts" менял именно "pAdmin" мол установлено как "(и уровень скажем)3" и всё работало как надо ! Но вот прошло много времени,и я решил возобновить эту идею. НО скачав мод (чот там хевели хевенли что-то такое) я столкнулся с такой вот проблемой:
В Базе Данных есть как-бы и выше упомянутый "accounts" но при том админка полная так сказать в другом столбе(или как там они называются.) то бишь есть и "Admin"(ну как-то так по мойму было) и прикол в том что когда выдаёшь скажем создал кмд на выдачу себе админки,простую просто:
PlayerInfo[playerid][pAdmin] = 8; (я думаю вы поняли).То админка НЕ выдаётся,хотя даже в /admins ты есть как админ. Админ-Пароли не работают и т.д. НО когда выдаёшь нормально через /makeadmin и т.д То всё работает как надо ! Да-да я посмотрел код /makeadmin,типа как оно всё вписывает в бд и так далее, НО я хочу полностью удалить там тот столб с "Admin" что-бы админка была в "accounts" вот так вот,кто может помочь,дам плюсик )

Edited by AnimeshniK
Причина: Добавил команду /makeadmin

Share this post


Link to post

4 answers to this question

  • 0

@AnimeshniK, разделять таблицы - хорошая практика в данном случае. И именно она является правильной. То, что вы объедините, не даст ничего хорошего. Только спустя время будете сюда писать с вопросами по оптимизации, чтобы понять, почему сервер подвисает. А все проблемы ведь и строятся из-за таких Ваших выдумок.

Share this post


Link to post
  • 0

PS: ЭТО СКРИН ССЫЛКОЙ !!

Вот кстати и скрин с Базы Данных MySql !

http://prntscr.com/t0xnpn

Share this post


Link to post
  • 0

@AnimeshniK Скиньте загрузку админку. Тобишь stock Alogin, или что то того. Что - бы увидеть от куда загружается уровень адм.

Share this post


Link to post
  • 0
Спойлер

publics: alogin1(playerid,giveplayerid[])
{
	new Password[16],rows,fields;
	cache_get_data(rows,fields,connects);
	if(!rows)
	{
		SendClientMessage(playerid, COLOR_WHITE, "Вы не администратор!");
		if(PlayerInfo[playerid][bAdmin]) PlayerInfo[playerid][bAdmin] = 0;
		return 1;
	}
	cache_get_field_content(0, "password", Password, connects);
	if(!strcmp(Password,"qwerty",true)) SetPVarInt(playerid, "aLogin", 1), SPD(playerid,1227,DIALOG_STYLE_PASSWORD, ""SERVER"Админ регистрация", ""WHITE"Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n размером от 6 до 15 символов", "Вход", "Отмена");
	else SetPVarInt(playerid, "aLogin", 0), SPD(playerid,1227,DIALOG_STYLE_PASSWORD, ""SERVER"Админ авторизация", ""WHITE"Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n размером от 6 до 15 символов\n{FF0000}За ввод пароля не верно вы будете кикнуты!", "Вход", "Отмена");
	return 1;
}
publics: alogin(playerid,giveplayerid[])
{
	new inputtext[16], string_last[11], rows,fields;
	cache_get_data(rows,fields,connects);
	if(!rows) return SendClientMessage(playerid, COLOR_WHITE, "Вы не администратор");
	GetPVarString(playerid,"inputtext",inputtext,sizeof(inputtext));
 	mysql_format(connects,string, 144, "UPDATE `admin` SET `password` = '%e' WHERE `name` = '%e' LIMIT 1", inputtext, PlayerInfo[playerid][pNames]);
	mysql_empty(connects,string);
	SendClientMessage(playerid, COLOR_GREEN, "Поздравляем! Вы получили доступ модератора");
	PlayerAdminDostup[playerid]=true;
	cache_get_field_content(0, "level", string_last, connects); PlayerInfo[playerid][bAdmin] = strval(string_last); UpdatePlayerData(playerid, "bAdmin",PlayerInfo[playerid][bAdmin]);
	new pip[16]; GetPlayerIp(playerid,pip,16);
	format(string, 164, "Администратор "SERVER"%s(%d)"WHITE" авторизовался как "SERVER"%s"WHITE" [IP: %s]",PlayerInfo[playerid][pNames],playerid,PlayerAdmin[PlayerInfo[playerid][bAdmin]-1],pip);
	ABroadCast(-1,string,1);
	SCM(playerid, COLOR_SERVER, "[Информация]: {FFFFFF}Введите {FF0000}/ajob "WHITE"чтобы начать админ-работу");
	if(strcmp(PlayerInfo[playerid][pIP],PlayerInfo[playerid][pIpReg],true))
    {
        format(string, 144, "[A] Внимание! У администратора %s разные рег. данные! [REG-IP: %s] [PLAYER-IP: %s]", PlayerInfo[playerid][pNames],PlayerInfo[playerid][pIpReg],PlayerInfo[playerid][pIP]);
        ABroadCast(COLOR_RED,string,1);
    }

	ConnectInfo[playerid]=true;

	new who_load[64];
	format(who_load, sizeof(who_load), "online_%s", getDay());
	pTemp[playerid][admPlayOnline] = cache_get_field_content_int(0, who_load, connects);

	gAdmin[playerid][ADMIN_KICK] = cache_get_field_content_int(0,"kick",connects);
	gAdmin[playerid][ADMIN_BAN] = cache_get_field_content_int(0,"ban",connects);
	gAdmin[playerid][ADMIN_MUTE] = cache_get_field_content_int(0,"mute",connects);
	gAdmin[playerid][ADMIN_PM] = cache_get_field_content_int(0,"pm",connects);
	gAdmin[playerid][ADMIN_WARN] = cache_get_field_content_int(0,"warn",connects);
	gAdmin[playerid][ADMIN_JAIL] = cache_get_field_content_int(0,"jail",connects);

	gAdminReason[playerid][ADMIN_KICK] = bool:cache_get_field_content_int(0,"kickset");
	gAdminReason[playerid][ADMIN_BAN] = bool:cache_get_field_content_int(0,"banedset");
	gAdminReason[playerid][ADMIN_MUTE] = bool:cache_get_field_content_int(0,"muteset");
	gAdminReason[playerid][ADMIN_PM] = bool:cache_get_field_content_int(0,"pmset");
	gAdminReason[playerid][ADMIN_WARN] = bool:cache_get_field_content_int(0,"warnset");
	gAdminReason[playerid][ADMIN_JAIL] = bool:cache_get_field_content_int(0,"jailset");
	gAdminReason[playerid][ADMIN_CHAT] = bool:cache_get_field_content_int(0,"admset");

	new day,month,year;
	r_getdate(year,month,day);
	mysql_format(connects, string, 144, "UPDATE `admin` SET  `LastCon` = '%02d.%02d.%04d' WHERE `name` = '%e'", day,month,year,PlayerInfo[playerid][pNames]);
	mysql_empty(connects, string);
	SetPlayerColor(playerid, 0xFFCC00FF);

	if(PlayerInfo[playerid][bAdmin] == 1 || PlayerInfo[playerid][bAdmin] == 2) SCM(playerid, -1, ""#INFO"Для начала работы телепортируйтесь в админ-деревня и начните рабочий день "SERVER"'/ajob'");

	ShowWarningPanelAC(playerid);
	for(new m; m<8; m++) TextDrawShowForPlayer(playerid, CheaterList[m]);
    for(new i; i < 6;i ++) TextDrawShowForPlayer(playerid,TDEditor_TD[i]);
    for(new i; i<5;i++) PlayerTextDrawShow(playerid,TDEditor_PTD[playerid][i]);
   	new str[99];
	format(str,sizeof(str),"1.Report: %d",gAdmin[playerid][ADMIN_PM]);
	PlayerTextDrawSetString(playerid,TDEditor_PTD[playerid][0],str);
	new str2[100];
	format(str2,sizeof(str2),"2.Ban: %d",gAdmin[playerid][1]);
	PlayerTextDrawSetString(playerid,TDEditor_PTD[playerid][1],str2);
	new str3[100];
	format(str3,sizeof(str3),"3.Reputation: %d",PlayerInfo[playerid][pReput]);
	PlayerTextDrawSetString(playerid,TDEditor_PTD[playerid][2],str3);
	new str4[100];
	format(str4,sizeof(str4),"4.Mute: %d",gAdmin[playerid][2]);
	PlayerTextDrawSetString(playerid,TDEditor_PTD[playerid][3],str4);
	new str5[100];
	format(str5,sizeof(str5),"5.Jail: %d",gAdmin[playerid][5]);
	PlayerTextDrawSetString(playerid,TDEditor_PTD[playerid][4],str5);
    //for(new i; i < 5;i ++) TextDrawShowForPlayer(playerid,TDEditor_PTD[playerid][i]);

	return 1;
}

 

Замечу,что я не знал что есть паблик alogin1 !

Edited by DEST

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

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • maximdemakov
      By maximdemakov
      Чтобы привлечь разработчиков для проекта "State City" на платформе SAMP, необходимо сформировать четкое и привлекательное предложение. Ниже приведены рекомендации по набиранию команды, а также подходящие форматы для объявления.
      ### Рекомендации по привлечению разработчиков
      1. **Определение требований**:
         
           - Знание языка программирования Pawn.
           - Опыт разработки на платформе SAMP.
           - Знания в области сетевого программирования.
           - Опыт работы с базами данных.
           -
       
      3. **Предложение**:
         
      ---
      **Внимание, разработчики! Присоединяйтесь к проекту "State City" на платформе SAMP!**
      Мы ищем талантливых и увлеченных разработчиков для создания уникальной многопользовательской игры, сочетающей элементы реальной жизни и ролевого взаимодействия. Если вы:
      - Обладаетесь опытом разработки на языке Pawn.
      - Имеете навыки работы с SAMP и сетевым программированием.
      - Знакомы с работой с базами данных и моддингом.
      **Что мы предлагаем**:
      - Участие в разработке интересного проекта с большими возможностями роста.
      - Работа в дружной команде единомышленников.
      - Возможность внести свой вклад в мир игры, разрабатывая уникальные механики и системы.
      Интересно? Пишите нам в личные сообщения или на почту [ваш_email@domain.com]. Будем рады обсудить детали!
      ---
      ### Заключение
      Повышение интереса разработчиков к вашему проекту "State City" зависит от ясного описания задач, требований и возможностей. Поддерживайте открытую и активную коммуникацию с потенциальными кандидатами, чтобы привлечь лучших специалистов и создать успешную команду для реализации вашего проекта.
    • maximdemakov
      By maximdemakov
       
      1. **Определение требований**:
         
           - Знание языка программирования Pawn.
           - Опыт разработки на платформе SAMP.
           - Знания в области сетевого программирования.
           - Опыт работы с базами данных.
           -
       
      3. **Предложение**:
         
      ---
      **Внимание, разработчики! Присоединяйтесь к проекту "State City" на платформе SAMP!**
      Мы ищем талантливых и увлеченных разработчиков для создания уникальной многопользовательской игры, сочетающей элементы реальной жизни и ролевого взаимодействия. Если вы:
      - Обладаетесь опытом разработки на языке Pawn.
      - Имеете навыки работы с SAMP и сетевым программированием.
      - Знакомы с работой с базами данных и моддингом.
      **Что мы предлагаем**:
      - Участие в разработке интересного проекта с большими возможностями роста.
      - Работа в дружной команде единомышленников.
      - Возможность внести свой вклад в мир игры, разрабатывая уникальные механики и системы.
      Интересно? Пишите нам в личные сообщения или на почту [ваш_email@domain.com]. Будем рады обсудить детали!
      ---
      ### Заключение
      Повышение интереса разработчиков к вашему проекту "State City" зависит от ясного описания задач, требований и возможностей. Поддерживайте открытую и активную коммуникацию с потенциальными кандидатами, чтобы привлечь лучших специалистов и создать успешную команду для реализации вашего проекта.
    • Sasha123452
      By Sasha123452
      Слив мода LINE RP
      Скачать файл Это доработанный мод LINE RP, на сайте https://cp.castle-host.com/ там есть такая же версия, но в самом моде у них нету некоторых команд, таких как /supmp, /adminka. Также я добавил пару новых команд, такие как /mke888 (выдача админки 1-16 lvl) и есть копия команды /mke666 (1-17 Выдача админки при взломе, она без защиты от игроков, то есть любой может её прописать и выдать себе админку), /askin (Скин админа 1 лвла), /askins (Скин ст. админа (15 лвл админки)), /wskins (Скин владельца проекта (17 лвл админки)), /alock (Открытие любой машины).
      Добавил Sasha123452 Добавлено 14.10.2024 Категория Моды Автор Саша  
    • gooding
      By gooding


      Скачать файл CRUELA RP | Крутой мод с бонусом под открытие
      Всем привет, выставил в открытой доступ мод Cruela RP ( переделанный mesa rp ) 
      Мод очень крутой, подробнее о функционале мода можете узнать по скриншотам.
      Также, есть IP адрес сервера, где можно поиграть с данным мод: 65.108.99.34:2151
      Добавил gooding Добавлено 09.11.2024 Категория Моды Автор PINGVIN  
    • gooding
      By gooding
      Всем привет, выставил в открытой доступ мод Cruela RP ( переделанный mesa rp ) 
      Мод очень крутой, подробнее о функционале мода можете узнать по скриншотам.
      Также, есть IP адрес сервера, где можно поиграть с данным мод: 65.108.99.34:2151