[Гайд] Типы сообщений

Реклама:

-ExotiC-

Администратор
Команда форума
11 Авг 2014
412
15
18
22
customgames.ru
Steam
Проект
Trolls vs Elves
Реакции
5 0 0
#1
Предполагается, что вы уже имеете общее представление о путях к файлам. Гайд ознакомит вас с возможностями сообщений и их использованием. Большинство из них поддерживают манипуляции с текстом, отображаемым с помощью переменных.

[img width=640 height=496]http://i.imgur.com/v0d7kxD.jpg[/img]

[img width=640 height=496]http://i.imgur.com/FesPU9z.jpg[/img]​

Скопируйте в ваш initgamemode что-то на подобии:

Код:
Convars:RegisterCommand( "call1", function(...) return self:call1( ... ) end, "Function Call 1", FCVAR_CHEAT )
Convars:RegisterCommand( "call2", function(...) return self:call2( ... ) end, "Function Call 2", FCVAR_CHEAT )
Convars:RegisterCommand( "call3", function(...) return self:call3( ... ) end, "Function Call 3", FCVAR_CHEAT )
Convars:RegisterCommand( "call4", function(...) return self:call4( ... ) end, "Function Call 4", FCVAR_CHEAT )
Это дает вам 4 консольные команды (call1-4), чтобы запустить ваши 4 функции. Это делает возню немного легче, команда "script_reload" (в консоль) перезагрузит ваш скрипт, не тратя время на перекомпиляцию карты.

Стандартное всплывающее окно
Код:
ShowGenericPopup( "#popup_title", "#popup_body", "", "", DOTA_SHOWGENERICPOPUP_TINT_SCREEN )
--Это будет читать ваш #popup_title и #popup_body переменные из \resource\addon_english.txt
И этот файл будет выглядеть примерно так:

Код:
"lang"
{
"Language"   "English"
"Tokens"
{    
  "popup_title"              "OMG its a title"

  "popup_body"          "useful info here"
}  
}
Сообщение в чат
Похоже на то, как пользователь вводит сообщение

Код:
Say(nil,"text here", false)
-- nil может быть заменен на Player ID
-- Текст поддерживает вводимые переменные, из кода или даже от вашей консольной команды
Большой текст сверху по центру он же show_center_message

Код:
local messageinfo = {
message = messagetext,
dur = timetoshow
}
FireGameEvent("show_center_message",messageinfo)
Чтобы это работало, вам нужно вызвать функцию для принятия строк messagetext и timetoshow. Ваша функция должна быть примерно такая:

Код:
function blah:call1 ( cmd, messagetext, timetoshow )
-- cmd будет возвращать call1
Вызвать командой из консоли? Это выглядело бы так:
Код:
sv_cheats 1
call1 TEXTTOSHOW 2
Текст в области вывода убийства

Код:
GameRules:SendCustomMessage("<font color='#58ACFA'>This is some Blue Text</font> This is white", 0, 0)

Переменные поддерживаются, так же как простой ограниченный HTML. Я не уверен в том что HTML поддерживается, но по крайней мере базовые манипуляции с текстом (Жирность, Курсив, Цвет) работают.

Перевод: http://removie.ru/d2wt
Источник: http://www.reddit.com/r/Dota2Modding/comments/2dfvgl/intermediate_a_few_of_the_messagepopuptext/
 
Последнее редактирование:
Реклама: