|
|
| Line 1: |
Line 1: |
| __NOTOC__
| |
| {{RU/Server function}}
| |
| {{New feature|3|1.0|
| |
| Эта функция дает бан игроку по IP, [[RU/Serial|серийному коду]] или имени.
| |
| }}
| |
|
| |
|
| {{Deprecated_feature|3|1.0|
| |
| This function will ban the specified player from the server by IP.
| |
| }}
| |
|
| |
| ==Синтаксис==
| |
| {{New feature|3|1.0|
| |
| <syntaxhighlight lang="lua">
| |
| ban banPlayer ( player bannedPlayer, [ bool IP = true, bool Username = false, bool Serial = false,
| |
| player responsiblePlayer = nil, string reason = nil, int seconds = 0 ] )
| |
| </syntaxhighlight>
| |
| }}
| |
|
| |
| {{Deprecated_feature|3|1.0|
| |
| <syntaxhighlight lang="lua">
| |
| bool banPlayer ( player bannedPlayer , [ element responsibleElement, string reason ] )
| |
| </syntaxhighlight>
| |
| }}
| |
| {{RU/OOP||[[RU/Element/Player|player]]:ban||}}
| |
| ===Обязательные аргументы===
| |
| *'''bannedPlayer:''' Игрок, который должен быть забанен сервером.
| |
|
| |
| ===Необязательные аргументы===
| |
| {{RU/OptionalArg}}
| |
| {{New feature|3|1.0|
| |
| *'''IP:''' Забанить игрока по IP?
| |
| *'''Username:''' Забанить игрока по имени?
| |
| *'''Serial:''' Забанить игрока по серийному коду?
| |
|
| |
| :'''Примечание:''' Чтобы забанить игрока по имени или серийному коду, ''verifyserials'' должна быть включена в серверном файле конфигурации.
| |
|
| |
| }}
| |
| *'''responsibleElement:''' Элемент, который отвечает за бан игрока. Это может быть игрок или корневой элемент ([[RU/getRootElement| getRootElement() ]]).
| |
| *'''reason:''' Причина, по которой игрок будет забанен.
| |
| *'''seconds:''' Количество секунд для бана игрока. Может быть 0, для бесконечного бана.
| |
|
| |
| ===Возвращения===
| |
| {{Deprecated_feature|3|1.0|
| |
| Возвращает ''true'' если игрок успешно забанен, ''false'' если даны неправильные аргументы.
| |
| }}
| |
|
| |
| {{New feature|3|1.0|
| |
| Возращает элемент [[RU/Ban|бана]], если игрок успешно забанен, или ''false'' в противном случае.
| |
| }}
| |
|
| |
| ==Пример==
| |
| Этот пример банит кого-нибудь, если он имеет ACL права.
| |
| <syntaxhighlight lang="lua">
| |
| --Добавляем командный заголовок "ban"
| |
| -- Пример с игроком
| |
| function banPlayerCommand ( theClient, commandName, bannedName, reason )
| |
|
| |
| --Показываем ошибку если нет необходимых прав
| |
| if ( hasObjectPermissionTo ( theClient, "function.banPlayer" ) ) then
| |
| --Получаем элемент игрока из имени
| |
| local bannedPlayer = getPlayerFromNick ( bannedName )
| |
|
| |
| --Баним игрока
| |
| banPlayer ( bannedPlayer, theClient, reason )
| |
| outputChatBox ( "ban: " .. bannedName .. " успешно забанен", theClient )
| |
|
| |
| else
| |
| outputChatBox ( "ban: У вас недостаточно на это прав", theClient )
| |
| end
| |
|
| |
| end
| |
| addCommandHandler ( "ban", banPlayerCommand )
| |
|
| |
| --Пример функции с корневым элементом. Здесь вы должны передавать элемент игрока в функцию.
| |
| function banCheater(theCheater)
| |
| banPlayer(theCheater, getRootElement(), "Вы забанены за читерство.")
| |
| end
| |
| </syntaxhighlight>
| |
|
| |
| Это пример файрвола аккаунтов игроков, работающего по серийному коду, во время их входа.
| |
| <syntaxhighlight lang="lua">
| |
| Firewall =
| |
| {
| |
| [ 'AccountName' ] = 'SerialPlayer',
| |
| [ '3ash8' ] = '9C9F3B55D9D7BB7135FF274D3BF444E4',
| |
| [ 'test5' ] = '1D6F76CF8D7193792D13789849498452',
| |
| }
| |
|
| |
| addEventHandler ( 'onPlayerLogin', getRootElement ( ),
| |
| function ( _, theCurrentAccount )
| |
| local Serial = Firewall[getAccountName(theCurrentAccount)]
| |
| if ( Serial ) then
| |
| if Serial ~= getPlayerSerial ( source ) then
| |
| banPlayer ( source, false, false, true, getRootElement ( ), 'причина бана' )
| |
| end
| |
| end
| |
| end
| |
| )
| |
| </syntaxhighlight>
| |
| ==Смотрите также==
| |
| {{RU/Admin_functions}}
| |
| [[en:banPlayer]]
| |
| [[es:banPlayer]]
| |