Показать сообщение отдельно
  #18  
Старый 07.02.2014, 23:52
Аватар для TpekKepP
TpekKepP TpekKepP вне форума
Спаситель Бри
За отличную работу в преддверии Рохана За помощь локализаторам Переживший конец света 
 
Регистрация: 19.01.2009
Сообщений: 108
Post [Гайд] Создание Lua-плагинов в ВКО для «чайников»

Цитата:
Сообщение от NoseyHobbit Посмотреть сообщение
Имеется ли возможность написать плагин, который меняет имя персонажа в таргете и вне его на, скажем, класс персонажа?
Изменить стандартные элементы нельзя, но используя созданное вручную окно и/или наложение его на стандартные элементы интерфейса, можно.

Добавлено.
Вот пример плагина, что выводит в чат имя вашей цели и ее класс.

Код:

import "Turbine.UI.Lotro";
import "Turbine.Gameplay";
-- Хватаем себя
local player = Turbine.Gameplay.LocalPlayer.GetInstance();
local target;
-- Цели бывают разные, как и наборы полей у них
local function getFuncValue( obj, funcName )
local ok, v = pcall( obj[funcName], obj );
if ( ok ) then
return v;
else
return -1;
end
end
-- Что делаем при смене нашей цели
function player:TargetChanged()
-- Берем цель
target = player:GetTarget();
-- Цель есть
if ( target ) then
-- Берем имя
local name = target:GetName();
-- Берем класс
local class = getFuncValue( target, "GetClass" );
-- Данные энумерованы. Вытягиваем английское название класса.
-- Для русского названия достаточно создать таблицу, состоящую из пар < ID > = < Название >
-- и использвать вытягивать название по ID
for cName, cID in pairs( Turbine.Gameplay.Class ) do
if ( cID == class ) then
class = cName;
break;
end
end
-- Выводим в чат имя и класс
Turbine.Shell.WriteLine( ">> Имя: " .. name .. ". Класс: " .. class .. "." );
end
end