RU/outputChatBox

From Multi Theft Auto: Wiki
Revision as of 10:39, 21 August 2012 by Wielebny (talk | contribs) (Default outputChatBox colors are not 255,255,255 but 231,217,176)

This template is no longer in use as it results in poor readability.

Эта функция выводит текстовую строку в окно чата. Можно осуществлять вывод как в чат отдельных игроков, так и всех сразу.

Дополнительно можно использовать строки с цветовыми кодами, передавая параметр colorCoded равным 'true'. Пример:

outputChatBox ( "#FF0000Hello #00FF00World", getRootElement(), 255, 255, 255, true )

Это будет отображено в чате, как: Hello World

Синтаксис

Click to collapse [-]
Server
bool outputChatBox ( string text [, element visibleTo=getRootElement(), int r=231, int g=217, int b=176, bool colorCoded=false ] )

Обязательные аргументы

  • text: Текстовая строка, которая будет отправлена в окно чата.

Дополнительные аргументы

Примечание. При использовании необязательных аргументов Вам может потребоваться предоставить все аргументы перед тем аргументом, который Вы хотите использовать. Для более подробной информации ознакомьтесь с необязательными аргументами.

  • visibleTo: Задает, кому будет виден чат. Все игроки-потомки этого элемента увидят сообщение. См. visibility.
  • r: Целое число - количество красного компонента в цвете текста (0 - 255, по умолчанию 231).
  • g: Целое число - количество зеленого компонента в цвете текста (0 - 255, по умолчанию 217).
  • b: Целое число - количество синего компонента в цвете текста (0 - 255, по умолчанию 176).
  • colorCoded: Логическая переменная, которая определяет, будут ли использоваться строковые теги вида '#RRGGBB'.

'Примечания': Если указан один из цветовых компонентов, то обязательно указывать и остальные. visibleTo может быть объектом типа Team, тогда текст будет показан всем игрокам этой команды. Формат #RRGGBB допускает в записи шестнадцатеричных чисел только заглавные буквы A-F.

Click to collapse [-]
Client
bool outputChatBox ( string text [, int r=231, int g=217, int b=176, bool colorCoded=false ] )

Обязательные аргументы

  • text: Текстовая строка, которая будет отправлена в окно чата.

Дополнительные аргументы

Примечание. При использовании необязательных аргументов Вам может потребоваться предоставить все аргументы перед тем аргументом, который Вы хотите использовать. Для более подробной информации ознакомьтесь с необязательными аргументами.

  • r: Целое число - количество красного компонента в цвете текста (0 - 255, по умолчанию 231).
  • g: Целое число - количество зеленого компонента в цвете текста (0 - 255, по умолчанию 217).
  • b: Целое число - количество синего компонента в цвете текста (0 - 255, по умолчанию 176).
  • colorCoded: Логическая переменная, которая определяет, будут ли использоваться строковые теги вида '#RRGGBB'.

Вывод

Возвращает true, если сообщение было успешно отправлено. Возвращает false, если были переданы некорректные аргументы.

Пример

Click to collapse [-]
Server

Пример 1: Вывод сообщения всем пользователям.

x = 5
y = 10  
-- Отображает сообщение
outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges." )

Пример 2: В этом пример происходит вывод простого цветного текста "Красный Белый", где слово "Красный" красного цвета, а "Белый" - белого.

 outputChatBox ( "Красный #FFFFFFБелый", getRootElement(), 255, 0, 0, true )

Пример 3: Этот пример позволяет игрокам писать в чат текстом того же цвета, что и их ник.

function colouredChat ( message, theType )
	if theType == 0 then --если это обычный чат, а не /me или командный
		cancelEvent() --останавливаем встроенный в МТА вывод сообщения
		message = string.gsub(message, "#%x%x%x%x%x%x", "") --убираем любые шестнадцатеричные метки с помощью функции string.gsub из lua
		local r,g,b = getPlayerNametagColor ( source ) --выясняем, какого цвета ник игрока
		local chatterName = getPlayerName ( source ) --выясняем имя
		--выводим сообщение в чат, при этом ник игрока будет написан его цветом, а остальной текст белым
		outputChatBox ( chatterName..":#FFFFFF "..message, getRootElement(), r, g, b, true )
	end
end

Пример 4: Пишем сообщение в чат игроку под ником someguy.

-- Ищем игрока с именем 'someguy'
myPlayer = getPlayerFromNick ( "someguy" )
-- Если игрок с таким именем найден, то ...
if ( myPlayer ~= false ) then
    x = 5
    y = 10
    -- отправляем ему в чат сообщение
    outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges.", myPlayer )
end

Пример 5: Отправляем приветствие игроку, зашедшему на сервер.

function onJoin()
	outputChatBox ("Добро пожаловать на сервер!", source)
end

addEventHandler("onPlayerJoin",getRootElement(),onJoin)

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