Недавно начал интересовать такой вопрос... Возможно ли сделать админку НЕ по Нику-СТИМ_ИД-ИП... а каким то другим образом... Типо плагином, который будет читать у игроков определённую команду консоли (из их конфига) как по типу setinfo и если их setinfo совпадает с тем что прописан в плагине, чтоб выдавались определённие права админа тому игроку у которого есть этот setinfo, но ещё нужно учесть чтоб работало только одно такое setinfo, а то весь сервер сможет бегать на одном... если такое возможно, буду благодарен за подсказки как это реализовать в плагин...
Создание такого плагина действительно интересна )) Конечено можно и это делается очень просто Нужно просто получить ту строку короую хочешь сравнивать через get_user_info(id,"name",szName,charsmax(szName)) // name это ты получаешь имя игрока тоесть тебе нужно сделать следующее Получить данные и сравнить их с теми данными которые записаны в плагине Это делается через функцию equal Пример #include <amxmodx>
public plugin_init() { register_clcmd("say /acc","say_acces") }
public say_acces(id) { new szName[32] get_user_info(id,"name",szName,charsmax(szName)) // получили данные if(equali(szName,"nesquikroma")) // Сравниваем ник который получили через get_user_info с каким нам надо т.е. с nesquikroma так как в рамках этого проэкта моё такое имя { You code here ... } }
Тоесть если игрок по имени nesquikroma напишет в чате say /acc То он получит содержимое You code here ... ну там можно вписать всякой всячины ) Надеюсь намек понял))) Пиши если что-то непонятно
[quote]Это делается через функцию equal[/quote] [quote]if(equali(szName,"nesquikroma"))[/quote] equal и equali отличаются, а ты написал одно, а в примере указал другое. Помог? - Поставь +
nesquikroma, вот я планирую сделать такой проект... я даю человеку спец код, допустим, setinfo regkey "dfghuyhn" он входит на сервер, под своим ником, открывает консоль, вводит код который я ему дал, и вуаля, он стал админом... мне это нужно для курсового пректа по учёбе и это пригодится мне для своего сервера... надо разработать плагин который: 1. При входе игрока на сервер, проверит setinfo regkey, если он совпадает с моим, то даються флаги админа, если не совпадает, то флаг "z" 2. Чтоб можно было проследить количество одинаковых ключей одновременно... 3. Подгрузка ключей из файла regkeys.ini Я сам плагины писать не умею, слишком слабые знания ПАВН, алгоритм придумать то смог, но реализировать в готовый работающий плагин, немножко проблематически...
Работа с файломи ))) Немного сложнор но выполнимо )
#include <amxmodx> #include <amxmisc>
new filekeyreg[81] // наш файл с ключами
public plugin_cfg() { new cfg[32] get_configsdir(cfg,charsmax(cfg)) // получаем путь до папки configs format(filekeyreg,80,"%s/название_файла.ini",cfg) // вот собственно наш файл приобрел свой вид }
public client_connected(id) // Отлавливаем момент присоединения на сервер { set_task(1.0,"check_user_reg_key",id) }
public check_user_reg_key(id) { new Regkey[99] get_user_info(id,"regkey",Regkey,charsmax(Regkey)) // Получаем ключ который ты выдал игроку new szParseRegKey[32],szParseText[128] new szLine,szNum for(szLine=0;read_file(filekeyreg,szLine,szParseText,63,szNum);szLine++) // Читаем файл с ключами { parse(szParseText,szParseRegKey,charsmax(szParseRegKey)) // парсим ключи if(equali(Regkey,szParseRegKey)) // Сравниваем ключ, Если подходит выполняем You code here ... { //Или ты просил что бы давались флаги админа set_user_flags(id, ADMIN_ALL || ADMIN_BAN || ADMIN_KICK || ADMIN_IMMUNITY ) // ну а дальше кау-нибудь сам ) } } }
Вопрос ? зачем тебе давать флаг Z простым игрокам ? Это флаг по умолчанию когда ты присоединяешся к серверу он выдается всем ВОзможно работать не будет точно незнаю писал на скорую руку Удачи в развитии твоей идеи )
Сообщение отредактировал nesquikroma - Пятница, 2013-06-07, 18:58