RU/aclGroupClone: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(code style)
(Mentioning author names on script examples isn't adopted practise on the MTA wiki, thanks for understanding)
 
Line 74: Line 74:
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>
'''Автор''': MR.GRAND
'''Перевел''': Alex7202


==Смотрите также==
==Смотрите также==

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 » Эта функция получает кол-во оборотов машины.