RU/onPlayerConnect: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 22: Line 22:
Если это событие [[RU/Event system#Отмена событий|отменено]], игрок будет отключён с сообщением об ошибке, указывающим причину, указанную в функции [[RU/cancelEvent|cancelEvent]], или  "Disconnected: server refused the connection", если ни одна из причин не указана.
Если это событие [[RU/Event system#Отмена событий|отменено]], игрок будет отключён с сообщением об ошибке, указывающим причину, указанную в функции [[RU/cancelEvent|cancelEvent]], или  "Disconnected: server refused the connection", если ни одна из причин не указана.


==Пример==  
==Примеры==  
'''Пример 1'''. В этом примере запрещается подключение игроков, использующих ник ''Player'' или, в противном случае, выводятся некоторые данные о подключающемся игроке.
'''Пример 1'''. В этом примере запрещается подключение игроков, использующих ник ''Player'' или, в противном случае, выводятся некоторые данные о подключающемся игроке.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 36: Line 36:
addEventHandler("onPlayerConnect", getRootElement(), playerConnect)
addEventHandler("onPlayerConnect", getRootElement(), playerConnect)
</syntaxhighlight>
</syntaxhighlight>


'''Пример 2'''. В этом примере закрывается соединение, если игрок старую версию MTA (ниже 1.0.3).
'''Пример 2'''. В этом примере закрывается соединение, если игрок старую версию MTA (ниже 1.0.3).

Revision as of 18:21, 5 December 2017

Это событие вызывается, когда игрок пытается подключиться к серверу.

[[{{{image}}}|link=|]] Важное примечание: Никогда, ни при каких обстоятельствах не следует изменять игрока, возвращаемого функцией getPlayerFromName, перед событием onPlayerJoin, дабы избежать десинхронизации (например, setPlayerName).

Параметры

string playerNick, string playerIP, string playerUsername, string playerSerial, int playerVersionNumber, string playerVersionString
  • playerNick. Текущий ник игрока.
  • playerIP. Текущий IP-адрес игрока.
  • playerUsername: Имя пользователя сообщества игроков.
  • playerSerial. Серийный номер игрока.
  • playerVersionNumber: Версия MTA игрока в чистой цифровой форме. Например, 256 для 1.0, 257 для 1.0.1 и т.д.
  • playerVersionString: Версия MTA игрока в сортируемой строковой форме. То же, что и возвращаемое значение функции getPlayerVersion.

Источник

Источником этого события является клиентский корневой элемент.

Отмена эффекта

Если это событие отменено, игрок будет отключён с сообщением об ошибке, указывающим причину, указанную в функции cancelEvent, или "Disconnected: server refused the connection", если ни одна из причин не указана.

Примеры

Пример 1. В этом примере запрещается подключение игроков, использующих ник Player или, в противном случае, выводятся некоторые данные о подключающемся игроке.

function playerConnect(playerNick, playerIP, playerUsername, playerSerial, playerVersionNumber)
    if playerNick == "Player" then
        cancelEvent(true,"Ник \"Player\" запрещается использовать! Пожалуйста, измените его на другой. Вы можете изменить свой ник в меню \"Настройки\" во вкладке \"Мультиплеер\".")
    else
        outputChatBox(playerNick.." только что подключился к серверу.")
        outputChatBox("IP-адрес: "..playerIP..", имя пользователя: "..playerUsername..", серийный номер: "..playerSerial..".")
    end
end

addEventHandler("onPlayerConnect", getRootElement(), playerConnect)


Пример 2. В этом примере закрывается соединение, если игрок старую версию MTA (ниже 1.0.3).

addEventHandler("onPlayerConnect", getRootElement(),
    function(_,_,_,_, clientVersion )
        if clientVersion < 259 then
            cancelEvent(true, "Обновите Multi Theft Auto перед тем, как присоединиться к серверу." )
        end
    end
)


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

События игрока


Функции событий

Серверные функции

  • getCancelReason - получает причину отмены события
  • triggerClientEvent - позволяет вызвать срабатывание события, предварительно созданного на клиенте
  • triggerLatentClientEvent - аналог triggerClientEvent, но скорость передачи может быть ограничена

Клиентские функции

  • triggerLatentServerEvent - аналог triggerServerEvent, но скорость передачи может быть ограничена
  • triggerServerEvent - позволяет вызвать срабатывание события, предварительно созданного на сервере

Общие функции

  • addEvent - позволяет зарегистрировать своё собственное событие
  • addEventHandler - прикрепляет к событию обработчик
  • cancelEvent - останавливает автоматическую внутреннюю обработку события
  • cancelLatentEvent - останавливает автоматическую внутреннюю обработку скрытого события
  • getEventHandlers - получает прикреплённые функции из события и присоединённый элемент из текущего lua-скрипта
  • getLatentEventHandles - получает текущие скрытые события в очереди
  • getLatentEventStatus - получает состояние одного скрытого события в очереди
  • removeEventHandler - открепляет от события обработчик
  • triggerEvent - вызывает срабатывание указанного события для указанного элемента в дереве элементов
  • wasEventCancelled - проверяет, было ли отменено последнее завершённое событие