ZH-CN/AclGetGroup

From Multi Theft Auto: Wiki
Revision as of 03:35, 6 February 2021 by Qwe7769611 (talk | contribs)
Jump to navigation Jump to search

此函数用于获取具有给定名称的ACL组.如果需要大多数组,应该考虑使用aclGroupList来获得包含所有组的表.

语法

aclgroup aclGetGroup ( string groupName )

OOP 语法 什么是OOP?

提示: This function is a static function underneath the ACL Group class.
方法: ACLGroup.get(...)

必填参数

  • groupName: 从中获取ACL组的名称

返回值

返回ACL组(如果可以找到).如果它不存在或由于某种原因失败,则返回false/nil.

示例

例子 1: 这个例子使每个玩家都能使用一个名为“giveAccountAdminRights”的命令,该命令会将一个特定的账户名作为ACL对象添加到“Admin”组中.

function giveAdminRights (playerSource, commandName, accountName) --添加函数giveAdminRights并指定其参数
	if accountName then --if there was an accountName entered then
		aclGroupAddObject (aclGetGroup("Admin"), "user."..accountName)) --使用“user.[accountName]”格式将ACL对象添加到ACL组“Admin”
		outputChatBox ("Account '"..accountName.."' succesfully added to the admin group", playerSource) --向输入命令的玩家输出一个通知,通知其acocunt已成功添加
	else --否则,将错误消息和命令的正确语法输出给输入它的玩家
		outputChatBox ("No account name specified.", playerSource)
		outputChatBox ("Correct syntax: /giveAccountAdminRights [accountName]", playerSource)
	end
end

addCommandHandler ("giveAccountAdminRights", giveAdminRights) --添加一个命令“giveAccountAdminRights”并将函数“giveAdminRights”添加到其中

例子 2: 此示例显示聊天框中所有在线管理员的列表(假设ACL中的管理员组名为“admin”):

players = getElementsByType ( "player" )
admins = ""
for k,v in ipairs(players) do
   local accountname = ""
   if (isGuestAccount(getPlayerAccount(v)) == false) then
      accountname = getAccountName (getPlayerAccount(v))
      if isObjectInACLGroup ( "user." .. accountname, aclGetGroup ( "admin" ) ) then
         if (admins == "") then
            admins = getPlayerName(v)
         else
            admins = admins .. ", " .. getPlayerName(v)
         end
      end
   end
end
outputChatBox( "Online Admins:", getRootElement(), 255, 255, 0)
outputChatBox( " " .. tostring ( admins ), getRootElement(), 255, 255, 0)

See Also