AnimeshniK

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

Рекомендованные сообщения



5 posts in this topic

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
Share on other sites

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

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

http://prntscr.com/t0xnpn

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Спойлер

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
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Feris
      By Feris
      Приветствую всех, Вы ищете SA-MP серверы Freeroam ? Вот, пожалуйста!

      Языковые серверы: Английский/Чешский/Словацкий

      Посетите наши SA-MP серверы :

      Сервер 1 0.3.7 Клиентский сервер:
      Для подключения: play.superparba.eu:7777

      Сервер 2 0.3DL Клиентский сервер собственные острова и новые сюжетные миссии:
      Для подключения: Dl.superparba.eu:7777

      Сайт сервера: SuperParba.eu

      Discord: https://discord.com/invite/VRrtbsCJgb

      Почему вы должны играть на наших игровых серверах?

      SuperParba построен на создании сообщества и его характера, в котором вы можете управлять своим собственным
      бизнесом, покупать недвижимость, компании, быть членом банды - участвовать в гонках, бороться за территорию, захватывать склады в уникальной игре GANG.
      захватывать склады в уникальной системе GANG. Множество различных мероприятий от команды администрации, таких как
      Fallout, Sky (street) races, Color Dash, Runners VS Riders, Shooters VS Riders, Random events, Hit & Run,
      Тюнинг события, Дерби, Смертельные события, DM ... будут проходить каждый день и дополняться МЕГА
      событиями, которые проходят в течение нескольких недель! Мы работаем с 2008 года, сервер прошел
      через сотни полноценных обновлений из предложений по улучшению сервера от игрового
      сообщества! PARTY СЕРВЕР с игровым режимом RZE 10.1 режим попадает прямо под кожу, такова
      SuperParba!

      - Профессиональная команда администраторов, которая следит за порядком, создает веселье и помогает игрокам с любой проблемой.
      Если вы не знаете, как справиться с чем-то, используйте /ask, чтобы отправить свой вопрос напрямую к
      Администраторам, и вы получите ответ в кратчайшие сроки.

      - Для новичков был добавлен краткий учебник. Для навигации к месту запуска используйте команду
      /tutorial. Завершив учебник с 0 часов игры, новичок получит 7 дней
      премиум классик бесплатно.

      - Игроки нашли много веселья, эмоций, поворотов, друзей, новостей и воспоминаний за эти 12
      лет. Есть даже несколько реальных отношений, с которыми они познакомились в SuperParba. Это будет
      безумие, когда они расскажут об этом своим детям. Игроки рады вернуться на наш сервер, так что приходите и присоединяйтесь к нашей
      семье!

      Спасибо, что читаете.
    • panda1999
      By panda1999
      Ищу команду для открытие Торговой площадки Котороя готова вложиться на разработку писать в лс на сайте или вк https://vk.com/panda131999
      Скрин шот главной страницы


    • bdbsnnsd
      By bdbsnnsd
      Не могу найти куда в бд написать пароль от админки.