Вопросы

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" вот так вот,кто может помочь,дам плюсик )

Отредактировано пользователем AnimeshniK
Причина: Добавил команду /makeadmin

Поделиться сообщением


Ссылка на сообщение

4 ответа на этот вопрос

  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

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

http://prntscr.com/t0xnpn

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 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 !

Отредактировано пользователем DEST

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

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

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

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Aleksey98
      От Aleksey98
      Необходим человек: который сможет написать систему тюнинга!
      как на крупных проектах типа: Arizona и Radmir
      И еще требуется Мапперы на новый топовый проект!
      Связь : https://vk.com/id289498732
    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };