Главная | Поиск | Чат | Форум | Рынок | | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Уважаемые пользователи, прежде чем открыть новую тему ознакомьтесь пожалуйста с правилами и воспользуйтесь поиском.

  • Страница 1 из 1
  • 1
Модератор форума: Cooller^_^, Mushroom, Tiger_  
Инной вид АДМИНКИ
Max7Дата: Четверг, 2013-06-06, 20:46 | Сообщение # 1
Сообщений: 310
Награды: 15
Недавно начал интересовать такой вопрос...
Возможно ли сделать админку НЕ по Нику-СТИМ_ИД-ИП... а каким то другим образом...
Типо плагином, который будет читать у игроков определённую команду консоли (из их конфига) как по типу setinfo
и если их setinfo совпадает с тем что прописан в плагине, чтоб выдавались определённие права админа тому игроку у которого есть этот setinfo, но ещё нужно учесть чтоб работало только одно такое setinfo, а то весь сервер сможет бегать на одном...
если такое возможно, буду благодарен за подсказки как это реализовать в плагин...


 Украина
nesquikromaДата: Пятница, 2013-06-07, 00:37 | Сообщение # 2
Сообщений: 265
Награды: 20
Создание такого плагина действительно интересна ))
Конечено можно и это делается очень просто
Нужно просто получить ту строку короую хочешь сравнивать через
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 ... ну там можно вписать всякой всячины )
Надеюсь намек понял)))
Пиши если что-то непонятно


 Беларусь
N1gA:DДата: Пятница, 2013-06-07, 09:54 | Сообщение # 3
Сообщений: 60
Награды: 2
[quote]Это делается через функцию equal[/quote]
[quote]if(equali(szName,"nesquikroma"))[/quote]
equal и equali отличаются, а ты написал одно, а в примере указал другое.


Помог? - Поставь +
 Российская Федерация
nesquikromaДата: Пятница, 2013-06-07, 11:56 | Сообщение # 4
Сообщений: 265
Награды: 20
они сравнивают данные но только equal сравниват без учета регистра
equali делает точное сравнение
так что разница не оч большая


 Беларусь
Max7Дата: Пятница, 2013-06-07, 17:17 | Сообщение # 5
Сообщений: 310
Награды: 15
nesquikroma, вот я планирую сделать такой проект... я даю человеку спец код, допустим, setinfo regkey "dfghuyhn"
он входит на сервер, под своим ником, открывает консоль, вводит код который я ему дал, и вуаля, он стал админом...
мне это нужно для курсового пректа по учёбе и это пригодится мне для своего сервера...
надо разработать плагин который:
1. При входе игрока на сервер, проверит setinfo regkey, если он совпадает с моим, то даються флаги админа, если не совпадает, то флаг "z"
2. Чтоб можно было проследить количество одинаковых ключей одновременно...
3. Подгрузка ключей из файла regkeys.ini
Я сам плагины писать не умею, слишком слабые знания ПАВН, алгоритм придумать то смог, но реализировать в готовый работающий плагин, немножко проблематически...


 Украина
nesquikromaДата: Пятница, 2013-06-07, 17:39 | Сообщение # 6
Сообщений: 265
Награды: 20
Работа с файломи )))
Немного сложнор но выполнимо )

#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
 Беларусь
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Лучшие пользователи Новые пользователи

Общение :3

(1745)

нужен грамотный человек

(12)

Продвижение сайтов (крауд 0,97$/ссылка)

(0)

Помогите создать сайт

(23)

Обучения криптотрейдингу

(0)

Общение ^-^

(9999)

Общение:> (закрыта)

(9999)

Общение :] (закрыта)

(9728)

Флудилочка дизайнеров :)

(5928)

Досчитаем до 10000:)

(4786)

Cooller^_^

(6326)

REDtooth

(2547)

Gep

(2421)

redemaxa

(2162)

cs-strikez

(2010)

sherko0

(2024-11-12)

splash101

(2024-11-11)

zxcpul

(2024-11-05)

BOSS_world

(2024-10-30)

Vrascus

(2024-10-26)

Популярные