Jump to content

Помогите поставить ограничение на администратора


Recommended Posts

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

Варианта 2:

1- поставить ограничение на администратора

2- поставить вместо бинда команду, которую будут знать только нужные люди.

Вариант 1 лучше, но и 2 тоже ничего.

Прощу помощи! Что нужно дописать и где чтобы включить ограничение?

Заранее спасибо!!! :?

root = getRootElement () 
players = getElementsByType ( "player" ) 
OS_Trigger = false 
OS_Active = false 
  
function ResourceStartOS ( name, root ) 
    for k,v in ipairs(players) do 
        bindKey ( v, "3", "down", placeOSBeacon ) 
    end 
end 
addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), ResourceStartOS ) 
  
  
function OSPlayerJoin () 
    bindKey ( source, "3", "down", placeOSBeacon ) 
end 
addEventHandler ( "onPlayerJoin", root, OSPlayerJoin ) 
  
function placeOSBeacon ( player, key, state ) 
    if ( OS_Trigger == false ) and ( OS_Active == false ) then 
        OS_Trigger = true 
        defineLaunchType = key        
        showCursor ( player, true )  
        outputChatBox ( "Click to activate orbital strike. Press activation key again to cancel.", player, 105, 252, 55 ) 
    elseif ( OS_Trigger == true ) then --Cancel activation 
        OS_Trigger = false 
        defineLaunchType = nil 
        showCursor ( player, false ) 
        outputChatBox ( "Orbital strike activation cancelled.", player, 105, 252, 55 )   
    end      
end 
  
function playerClick ( button, state, clickedElement, x, y, z )    
    if ( OS_Active ~= false ) then 
        outputChatBox ( "Sorry, orbital strike already activated", source, 105, 252, 55 ) 
    end  
  
    if ( button ~= "left" ) or ( state ~= "down" ) or ( defineLaunchType ~= "3" ) then return end 
    showCursor ( source, false ) 
    OS_Trigger = false 
    OS_Active = true 
    defineLaunchType = nil --reset stuff 
    triggerClientEvent ( "ClientFireOS", getRootElement(), x, y, z ) 
end 
addEventHandler ( "onPlayerClick", root, playerClick ) 
  
function OrbitalStrikeFinished () 
    OS_Active = false    
end 
addEvent("serverOrbitalStrikeFinished", true)  
addEventHandler("serverOrbitalStrikeFinished", root, OrbitalStrikeFinished) 

Link to comment
Выше бред.
hasObjectPermissionTo 

Ведь не каждый использует ACL

Каждый.

А зачем за меня сказал? :D

Ладно с тобой все понятно, интересно услышать мнения других.

ps. Я не использую ACL т.к Толку от него не какого, разве только физический доступ к ресурсу но и это не заставляет выбирать его. Своя заменя ACL куда Гибче и удобней чем данная.

Link to comment
Своя замена ACL? Это вот эта?
if(admin_level > 5) then

Code...

end

В каком месте она гибче?

Я это написал пример взятый из гф.

У меня по другому. Я работаю исключительно с sql в нем и хранятся настройки групп.

А что я скажу по вашей ссылке, то смысл от него? я могу пользоватся своим велосипедом который работает на sql, и выполняет 1/2 от вашей же ACL.

Link to comment
  • Other Languages Moderators
Своя замена ACL? Это вот эта?
if(admin_level > 5) then

Code...

end

В каком месте она гибче?

Я это написал пример взятый из гф.

У меня по другому. Я работаю исключительно с sql в нем и хранятся настройки групп.

А что я скажу по вашей ссылке, то смысл от него? я могу пользоватся своим велосипедом который работает на sql, и выполняет 1/2 от вашей же ACL.

Оффтоп: Большинство СУБД работает на SQL и что? Это довольно удобный язык запросов.

Link to comment

Вы меня не допонили. Под SQL И имел ввиду MySQL. Просто сколько общался для всех SQL это MySQL Поэтому не стал обобщать. Я бы тоже использовал ACL Если он работал бы на MySQL Но он на файлах, поэтому меня он не интересует.

Link to comment

И что? ACL загрузился один раз в оперативную память и работает спокойно, надо обновить - загрузили ещё раз. Даже вроде есть GUI для работы с ACL. Не нравится работать с GUI или хочется доступа через HTTP? - Не вопрос, если вы так уверенны в себе, то легко напишите веб-морду для МТА. Ну а если же вам нравится юзать phpMyAdmin с открытыми портами которые легко зафлудить - то тут конечно вы победили :)

Link to comment
И что? ACL загрузился один раз в оперативную память и работает спокойно, надо обновить - загрузили ещё раз. Даже вроде есть GUI для работы с ACL. Не нравится работать с GUI или хочется доступа через HTTP? - Не вопрос, если вы так уверенны в себе, то легко напишите веб-морду для МТА. Ну а если же вам нравится юзать phpMyAdmin с открытыми портами которые легко зафлудить - то тут конечно вы победили :)

При первом прочтении есть 2 но.

1. Если сервер выключен или ведутся работы на нем, то веб-морда не поможет. Ну если опять же не писать веб морду которая работает на ssh, а это довольная уявзвимость если что где нибудь не досмотришь поэтому нет.

2. Работать с mysql куда проще, да и работает легче с запросами.

А по поводу порта то вы тут глубоко ошибаетесь.

Очень глубоко. То что вы написали это склоняется к рядовым пользователям.

Но извените я не из таких.

Link to comment
  • Other Languages Moderators

2. Работать с mysql куда проще, да и работает легче с запросами.

А по поводу порта то вы тут глубоко ошибаетесь.

Очень глубоко. То что вы написали это склоняется к рядовым пользователям.

Но извените я не из таких.

Работать с MySQL проще? Но зачем скачивать 3-4 лишних пакета (mysql пакеты, appache или nginx, php, PMA если через неё) Зачем добавлять уязвимостей к себе на сервер в качетве лишнего http порта?

Работать легче с запросами? Что простите? MySQL и SQLite работают на одном и том же языке запросов.

На счет портов спорить не буду, возможно вы бородатый сисадмин, который умеет проффесионально настраивать файерволы. Иногда, лучше использовать Системы БД предлагаемые разработчиками.

Link to comment

Здесь можно вести дисскусию вечно.

Но думаю не помешало бы поставить на этом конец.

Я согласен я в стандартных инструментах мта я может быть и нуб полный который не шарю всех этих няшностей по вашему виду.

Но скажу так как я думаю.

АCL Работает в связке с Account Fucntions И у обоих этих классов свои файлы.

ps.Это как я понял из wiki.

Второй нюанс, допустим мы захотели добавить что либо к acl.

Есть уйму вариантов.

Из игры, Веб-Обвязка к MTA, SSH Веб обвязка сервера.

Но это все не то.

Если был бы тот же SQL Сервер уже куда лучше, но тут сервера в помине нет. Здесь кусочек некчемной бд. Которая живет сама по себе.

Про http порт я чет не уяснил ваш намек.

Я говорю об Обвязке сервера (базы данных) Через панель редактирую тот же кастыль ACL И тому подобное.

А сервер уже во время работы уже фиксирует изменившиеся настройки. И принимает автоматически в игре.

ФАкт. Есть люди которые любят работать с локальными файлами, но есть и такие которые любят маштабность, это те которые не пользуются стандартными функциями а пишут свой велосипед что бы можно было допиливать тот же аналог ACL который имеет определенные функции и может они хотят такого функционала который ACL предоставить не может.

Ведь ACL Это только маленький камушек в океане.

Link to comment

Зачем писать веб морду ради SSH? Открываете SSH туннель и пользуетесь. Но SSH такая же дырка как и HTTP\MySQL (так же легко заддосить).

Устанавливать MySQL ради одного лишь ACL такое же сомнительное преимущество перед SQLite\стандартный ACL как и ставить MySQL ради "проще". Само "проще" уже сомнительно. Ставить MySQL ради игрового режима у которого большая БД с целью увеличения производительности и надёжности - нужно, но не будет никакой надёжности и производительности если вы не умеете работать с MySQL сервером и если вы не умеете правильно составлять SQL запросы.

Ну если опять же не писать веб морду которая работает на ssh, а это довольная уявзвимость если что где нибудь не досмотришь поэтому нет.

Аналогично и с самописными системами хранения данных, систем безопасности и прочее. Не досмотришь и вот тебе SQL-инъекция которая удалила всю БД, не так страшно если делаются резервные копии, а если украли? Не все понимают это, но MySQL довольно таки серьёзная вещь, у неё очень много тонкостей.

Нет! Я вовсе не пытаюсь вас отговорить, просто задумайтесь!

Если уж всётаки сильно хочется использовать SQL то, почему бы вам не посмотреть в сторону стандартного SQLite в МТА?

P.S. И ради бога, поймите уже, что SQL и SQLite совсем разное, называйте вещи правильно

UPD:

Здесь можно вести дисскусию вечно.

Смотря как вести. При правильном подходе можно много нового узнать. Главное не разводить холивар.

Link to comment

> Ставить MySQL ради игрового режима у которого большая БД с целью увеличения производительности и надёжности - нужно

Что и пытался донести до вас.

Меня не интересуют SSH тунели и прочее, меня интересует Полная интеграция на веб-прослойку.

Как для администраторов так и для конечных пользователей.

Но если использовать как вы предлогаете Локальные SqlLite То с ними будет возни куда больше, и опять же придется разводить кучу других подобных файлов а так все находится в MySql.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...