RU/aclGroupClone: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{RU/Useful Function}} __NOTOC__ This function clone a group to another group with/without ACLs and/or objects . ==Syntax== <syntaxhighlight lang="lua">bool aclGroupClone ( st...") |
Dutchman101 (talk | contribs) (Mentioning author names on script examples isn't adopted practise on the MTA wiki, thanks for understanding) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RU/Useful Function}} | {{RU/Useful Function}} | ||
__NOTOC__ | __NOTOC__ | ||
Эта функция создает копию группы с другим названием с/буз ACL'ов и/или объектов. | |||
== | ==Синтаксис== | ||
<syntaxhighlight lang="lua">bool aclGroupClone ( string groupToClone, string groupName, bool cloneACLs, bool cloneObjects )</syntaxhighlight> | <syntaxhighlight lang="lua">bool aclGroupClone ( string groupToClone, string groupName, bool cloneACLs, bool cloneObjects )</syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
* '''groupToClone''': | * '''groupToClone''': Какую группу копировать | ||
* '''groupName''': | * '''groupName''': Название копии | ||
* '''cloneACLs''': true | * '''cloneACLs''': true чтобы копировать ACL'ы, false чтобы не копировать ACL'ы | ||
* '''cloneObjects''': true | * '''cloneObjects''': true чтобы копировать объекты, false чтобы не копировать объекты | ||
=== | ===Возврат=== | ||
Вернет true если все успешно, false наоборот. | |||
== | ==Код== | ||
<section name=" | <section name="Сервер" class="server" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function aclGroupClone( clonedGroup, groupName, aclsClone, objectsClone ) | function aclGroupClone(clonedGroup, groupName, aclsClone, objectsClone) | ||
if (type(clonedGroup) ~= "string") then | |||
error("Bad argument @ 'aclGroupClone' [Expected string at argument 1, got " .. tostring(clonedGroup) .. "]") | |||
return false | |||
end | |||
if (aclsClone == true or aclsClone == false) then | |||
if (objectsClone == true or objectsClone == false) then | |||
local cloned = aclGetGroup(clonedGroup) | |||
if (cloned == false or not cloned) then | |||
outputDebugString("Bad argument @ 'aclGroupClone' [Expected acl-group at argument 1, got string '" .. tostring(clonedGroup) .. "']", 2) | |||
return false | |||
end | |||
local newGroup = aclCreateGroup(groupName) | |||
if (newGroup == false or not newGroup) then | |||
outputDebugString("Bad argument @ 'aclGroupClone' [Expected acl-group at argument 2, got string '" .. tostring(groupName) .. "']", 2) | |||
return false | |||
end | |||
if (aclsClone == true) then | |||
for index, value in ipairs(aclGroupListACL(cloned)) do | |||
aclGroupAddACL(newGroup, value) | |||
end | |||
end | |||
if (objectsClone == true) then | |||
for index, value in ipairs(aclGroupListObjects(cloned)) do | |||
aclGroupAddObject(newGroup, value) | |||
end | |||
end | |||
outputDebugString("'aclGroupClone' [The group '" .. clonedGroup .. "' has been cloned successfully to '" .. groupName .. "' .", 3) | |||
return true | |||
else | |||
error("Bad argument @ 'aclGroupClone' [Expected boolean at argument 4, got " .. tostring(objectsClone) .. "]") | |||
return false | |||
end | |||
else | |||
error("Bad argument @ 'aclGroupClone' [Expected boolean at argument 3, got " .. tostring(aclsClone) .. "]") | |||
return false | |||
end | |||
end | end | ||
</syntaxhighlight></section> | </syntaxhighlight></section> | ||
== | ==Пример== | ||
Клонируем 'Console' группу в 'OwnersGroup' и клонируем все ACL и объекты | |||
<section name=" | <section name="Сервер" class="server" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
addEventHandler( | addEventHandler("onResourceStart", resourceRoot, | ||
function( | function() | ||
setTimer(aclGroupClone, 1000, 1, "Console", "OwnersGroup", true, true) -- clone 'Console' Group to 'OwnersGroup' and clone ACLs and objects | |||
end ) | end | ||
) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | </section> | ||
==Смотрите также== | |||
{{RU/Useful_Functions}} | |||
[[en:aclGroupClone]] | |||
Latest revision as of 22:02, 12 December 2020
Эта функция создает копию группы с другим названием с/буз ACL'ов и/или объектов.
Синтаксис
bool aclGroupClone ( string groupToClone, string groupName, bool cloneACLs, bool cloneObjects )
Required Arguments
- groupToClone: Какую группу копировать
- groupName: Название копии
- cloneACLs: true чтобы копировать ACL'ы, false чтобы не копировать ACL'ы
- cloneObjects: true чтобы копировать объекты, false чтобы не копировать объекты
Возврат
Вернет true если все успешно, false наоборот.
Код
Click to collapse [-]
Серверfunction aclGroupClone(clonedGroup, groupName, aclsClone, objectsClone) if (type(clonedGroup) ~= "string") then error("Bad argument @ 'aclGroupClone' [Expected string at argument 1, got " .. tostring(clonedGroup) .. "]") return false end if (aclsClone == true or aclsClone == false) then if (objectsClone == true or objectsClone == false) then local cloned = aclGetGroup(clonedGroup) if (cloned == false or not cloned) then outputDebugString("Bad argument @ 'aclGroupClone' [Expected acl-group at argument 1, got string '" .. tostring(clonedGroup) .. "']", 2) return false end local newGroup = aclCreateGroup(groupName) if (newGroup == false or not newGroup) then outputDebugString("Bad argument @ 'aclGroupClone' [Expected acl-group at argument 2, got string '" .. tostring(groupName) .. "']", 2) return false end if (aclsClone == true) then for index, value in ipairs(aclGroupListACL(cloned)) do aclGroupAddACL(newGroup, value) end end if (objectsClone == true) then for index, value in ipairs(aclGroupListObjects(cloned)) do aclGroupAddObject(newGroup, value) end end outputDebugString("'aclGroupClone' [The group '" .. clonedGroup .. "' has been cloned successfully to '" .. groupName .. "' .", 3) return true else error("Bad argument @ 'aclGroupClone' [Expected boolean at argument 4, got " .. tostring(objectsClone) .. "]") return false end else error("Bad argument @ 'aclGroupClone' [Expected boolean at argument 3, got " .. tostring(aclsClone) .. "]") return false end end
Пример
Клонируем 'Console' группу в 'OwnersGroup' и клонируем все ACL и объекты
Click to collapse [-]
СерверaddEventHandler("onResourceStart", resourceRoot, function() setTimer(aclGroupClone, 1000, 1, "Console", "OwnersGroup", true, true) -- clone 'Console' Group to 'OwnersGroup' and clone ACLs and objects end )
Смотрите также
Функции таблиц
- pairsByKeys » Эта функция сортирует pairs таблицы.
ACL фунции
- aclGroupClone » Эта функция создает копию группы с другим названием с/буз ACL'ов и/или объектов.
События
- isEventHandlerAdded » Эта функция проверяет, создано событие или нет.
Функции машины
- getVehicleRPM » Эта функция получает кол-во оборотов машины.