Модуль:Entity Lookup: различия между версиями

Материал из Space Station 14 Вики
мНет описания правки
мНет описания правки
Строка 39: Строка 39:
     if frame.args["Картинка"] ~= nil then do
     if frame.args["Картинка"] ~= nil then do
     pic = "[[" .. frame.args["Картинка"] .. "|64x64px|left|middle|link=]]"
     pic = "[[" .. frame.args["Картинка"] .. "|64x64px|left|middle|link=]]"
     out =  frame:expandTemplate{ title = "Tooltip", args = { frame.args[1], pic .. entity.name, entity.desc, frame.args["Статы"] }}
            out = "{{Tooltip|" .. frame.args[1] .. "|" .. pic .. entity.name .. "|" .. entity.desc .. "|" .. frame.args["Статы"] .. "}}"
     -- out =  frame:expandTemplate{ title = "Tooltip", args = { frame.args[1], pic .. entity.name, entity.desc, frame.args["Статы"] }}
     end else
     end else
     out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  entity.name, entity.desc, frame.args["Статы"] }}
            out = "{{Tooltip|" .. frame.args[1] .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. frame.args["Статы"] .. "}}"
     -- out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  entity.name, entity.desc, frame.args["Статы"] }}
     end
     end
     -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
     -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание|Статы}}
     end else
     end else
      out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  "[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден", "Предмет не найден"}}
        out = "{{Tooltip|" .. frame.args[1] .. "|[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден|Предмет не найден}}"
    --    out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  "[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден", "Предмет не найден"}}
     end
     end
     return out
     return out

Версия от 08:38, 22 сентября 2023

Викиделам привет, остальным рекомендую вернуться на главную.

К функциям

Про модули

Модули - небольшие скрипты, призванные облегчить жизнь всем, кто занимается вики. Модули - почти тоже самое, что и шаблоны, с одним небольшим отличием: модули не просто заменяют один кусочек текста на другой кусочек текста и подставляют в него параметры, но и могут производить некоторые манипуляции с данными, будь то: вычисление сложных математических функций, получение данных из json баз данных и много чего ещё.
Ещё модули отличаются от шаблонов механизмом вызова. Вместо простого {{Название шаблона|Аргументы шаблона}} вы используете следующую конструкцию:

{{#invoke:Название модуля|Функция модуля|Аргументы функции}}

Заметили кое-что? Всё верно, в этой конструкции добавляется ключевое слово #invoke, а после названия модуля необходимо указать название нужной нам функции. Это необходимо потому, что модули не выполняют одну единственную задачу. Этих задач модуль может выполнять хоть 100 штук (если конечно кому-то не лень создавать 100 функций), поэтому нам необходимо указать модулю то, что мы от него хотим в данный конкретно момент.
Аргументы работают так же, как и в шаблонах. Если в документации аргументы задаются через Аргумент1=ПримерноеЗначение, то и при вызове модуля вы должны писать Аргумент1=ВашеЗначение, где Аргумент1 это название аргумента, указанного в документации, а ВашеЗначение это ваше значение, которое вы хотите передать в модуль.
Если же аргумент написан без знака = после него, это значит что аргумент зависит от своей позиции. Всё так же, как и с шаблонами.

Про этот модуль

Этот модуль должен облегчить жизнь всем тем, кто решился поработать с энтити на вики. С его помощью можно "брать" названия и описания энтити (всех, даже животных и стен) прямо из игры и разворачивать их в удобные шаблоны. Сделано это было для того, чтобы не выискивать в локализации нужные названия и описания энтити. Очень полезно!!! Пример вызова функции createtexttooltip модуля Entity Lookup с аргументами "FreedomImplant|img=Файл:Honks.gif" {{#invoke:Entity Lookup|createtexttooltip|Текст|FreedomImplant|img=Honks.gif}}

Ошибка Lua на строке 44: attempt to concatenate field 'Статы' (a nil value).

Very easy to use. Подробнее смотрите на сайте mediawiki.

Функции модуля

createtexttooltip

createtexttooltip позволяет нам создать шаблон Tooltip и наклеить его на указанный в аргументах текст.
{{#invoke:Entity Lookup|createtexttooltip|Текст|ID|img=Honks.gif}}

  • Текст - Текст, к которому нужно добавить Tooltip
  • ID - ID энтити из игры (к примеру у коричневой мыши ID - MobMouse1)
  • img (именной, опциональный) - Ссылка на картинку БЕЗ ПРИПИСКИ "Файл:" или "File:". Картинка будет использована как иконка в шаблоне Tooltip.

createimagetooltip

createimagetooltip позволяет нам создать шаблон Tooltip и наклеить его на указанное в аргументах изображение.
{{#invoke:Entity Lookup|createimagetooltip|Картинка|ID|Мета=Мета1,Мета2}}

  • Картинка - Ссылка на картинку, начинающаяся с "Файл:" или "File:". Картинка с наложенным Tooltip будет отображаться там, где вы вызовете модуль.
  • ID - ID энтити из игры (к примеру у коричневой мыши ID - MobMouse1)
  • Мета (именной, опциональный) - "Метаданные" для обработки картинки. То же самое, что вы бы написали после названия картинки в квадратных скобочках на обычной странице. Небольшой нюанс: вместо | мы используем ,(например "64x64px,left,middle,link=")

getname

getname позволяет получить имя предмета в том же виде, в котором оно записано в игре. {{#invoke:Entity Lookup|getname|ID}}

  • ID - ID энтити из игры (к примеру у коричневой мыши ID - MobMouse1)

getdesc

getdesc позволяет получить описание предмета в том же виде, в котором оно записано в игре. {{#invoke:Entity Lookup|getdesc|ID}}

  • ID - ID энтити из игры (к примеру у коричневой мыши ID - MobMouse1)

local prototypes = mw.loadData("Module:Entity Lookup/data")

local p = {}
p.entities = prototypes.entities


-- p.getname{args={"FreedomImplant"}}
function p.getname(frame) -- {{#invoke:Entity Lookup|getname|ProtoID}}
    local out = ""
    local entity = p.entities[frame.args[1]]
    if entity ~= nil then
        out = entity.name
    else
        out = "Не найдено"
    end
return out
end


-- p.getname{args={"FreedomImplant"}}
function p.getdesc(frame) -- {{#invoke:Entity Lookup|getdesc|ProtoID}}
    local out = ""
    local entity = p.entities[frame.args[1]]
    if entity ~= nil then
        out = entity.desc
    else
        out = "Не найдено"
    end
return out
end


-- p.createtexttooltip{args={"Верхний текст", "FreedomImplant", "Файл:Honks.gif"}}
function p.createtexttooltip(frame) -- {{#invoke:Entity Lookup|createtexttooltip|Текст|ProtoID|Картинка=картиночка|Статы=статы}}
    local out = " "
    local entity = p.entities[frame.args[2]]
    local pic = frame.args["Картинка"]
    if entity ~= nil then do
    	if frame.args["Картинка"] ~= nil then do
    		pic = "[[" .. frame.args["Картинка"] .. "|64x64px|left|middle|link=]]"
            out = "{{Tooltip|" .. frame.args[1] .. "|" .. pic .. entity.name .. "|" .. entity.desc .. "|" .. frame.args["Статы"] .. "}}"
    		-- out =  frame:expandTemplate{ title = "Tooltip", args = { frame.args[1], pic .. entity.name, entity.desc, frame.args["Статы"] }}
    	end else
            out = "{{Tooltip|" .. frame.args[1] .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. frame.args["Статы"] .. "}}"
    		-- out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  entity.name, entity.desc, frame.args["Статы"] }}
    	end
    -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание|Статы}}
    end else
         out = "{{Tooltip|" .. frame.args[1] .. "|[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден|Предмет не найден}}"
    --    out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  "[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден", "Предмет не найден"}}
    end
    return out
end


-- p.createimagetooltip{args={"Файл:Honks.gif", "FreedomImplant", Статы="Имеет 3 заряда"}}
function p.createimagetooltip(frame) -- {{#invoke:Entity Lookup|createimagetooltip|Картинка|ProtoID|Мета=мета|Статы=статы}}
    local out = " "
    local entity = p.entities[frame.args[2]]
    local pic = frame.args[1]
    local meta = frame.args["Мета"]
    if meta == nil then
        meta = "64x64px|link="
    end
    if entity ~= nil then do
    	if frame.args[1] ~= nil then do
    		pic = "[[" .. frame.args[1] .. "|" .. meta .. "]]"
    		out =  frame:expandTemplate{ title = "Tooltip", args = { pic, entity.name, entity.desc, frame.args["Статы"] }}
    	end else
    		out = frame:expandTemplate{ title = "Tooltip", args = { "[[Файл:Mousegif.gif|64x64px|left|middle|link=]]",  entity.name, entity.desc, frame.args["Статы"] }}
    	end
    -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
    end else
       out = frame:expandTemplate{ title = "Tooltip", args = { frame.args[1],  "[[Файл:Mousegif.gif|64x64px|left|middle|link=]] Не найден", "Предмет не найден"}}
    end
    return out
end


return p