Модуль:Entity Lookup: различия между версиями
Mhamster (обсуждение | вклад) (fix line 52) |
Mhamster (обсуждение | вклад) (пацаны смотрите, оп) |
||
Строка 44: | Строка 44: | ||
if entity ~= nil then do | if entity ~= nil then do | ||
if frame.args["img"] ~= nil then do | if frame.args["img"] ~= nil then do | ||
out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc .."|".. stats .."|img=".. frame.args["img"] .."}}") | out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc.gsub("\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}") | ||
end else | end else | ||
out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc .."|".. stats .."}}") | out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc.gsub("\n", "<br>") .."|".. stats .."}}") | ||
end | end | ||
-- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} | -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} |
Версия от 17:49, 28 апреля 2024
Викиделам привет, остальным рекомендую вернуться на главную.
К функциям
Про модули
Модули - небольшие скрипты, призванные облегчить жизнь всем, кто занимается вики. Модули - почти тоже самое, что и шаблоны, с одним небольшим отличием: модули не просто заменяют один кусочек текста на другой кусочек текста и подставляют в него параметры, но и могут производить некоторые манипуляции с данными, будь то: вычисление сложных математических функций, получение данных из json баз данных и много чего ещё.
Ещё модули отличаются от шаблонов механизмом вызова. Вместо простого {{Название шаблона|Аргументы шаблона}}
вы используете следующую конструкцию:
{{#invoke:Название модуля|Функция модуля|Аргументы функции}}
Заметили кое-что? Всё верно, в этой конструкции добавляется ключевое слово #invoke, а после названия модуля необходимо указать название нужной нам функции. Это необходимо потому, что модули не выполняют одну единственную задачу. Этих задач модуль может выполнять хоть 100 штук (если конечно кому-то не лень создавать 100 функций), поэтому нам необходимо указать модулю то, что мы от него хотим в данный конкретно момент.
Аргументы работают так же, как и в шаблонах. Если в документации аргументы задаются через Аргумент1=ПримерноеЗначение, то и при вызове модуля вы должны писать Аргумент1=ВашеЗначение, где Аргумент1 это название аргумента, указанного в документации, а ВашеЗначение это ваше значение, которое вы хотите передать в модуль.
Если же аргумент написан без знака =
после него, это значит что аргумент зависит от своей позиции. Всё так же, как и с шаблонами.
Про этот модуль
Этот модуль должен облегчить жизнь всем тем, кто решился поработать с энтити на вики. С его помощью можно "брать" названия и описания энтити (всех, даже животных и стен) прямо из игры и разворачивать их в удобные шаблоны. Сделано это было для того, чтобы не выискивать в локализации нужные названия и описания энтити. Очень полезно!!!
Пример вызова функции createtexttooltip модуля Entity Lookup с аргументами "FreedomImplant|img=Файл:Honks.gif"
{{#invoke:Entity Lookup|createtexttooltip|Текст|FreedomImplant|img=Honks.gif}}
Ошибка Lua на строке 46: bad argument #3 to 'gsub' (string/function/table expected).
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, entid) -- {{#invoke:Entity Lookup|getname|ProtoID}} local out = "" local id = "" if frame.args[1] ~= nil then id = frame.args[1] else id = entid end local entity = p.entities[id] if entity ~= nil then out = entity.name else out = "Не найдено" end return out end -- p.getname{args={"FreedomImplant"}} function p.getdesc(frame, entid) -- {{#invoke:Entity Lookup|getdesc|ProtoID}} local out = "" local id = "" if frame.args[1] ~= nil then id = frame.args[1] else id = entid end local entity = p.entities[id] 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|img=картиночка}} local out = " " local entity = p.entities[frame.args[2]] local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}") if entity ~= nil then do if frame.args["img"] ~= nil then do out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc.gsub("\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}") end else out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. entity.desc.gsub("\n", "<br>") .."|".. stats .."}}") end -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} end else out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|Не найден|Предмет не найден|img=Mousegif.gif}}") 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["Мета"] local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}") if meta == nil then meta = "64x64px|link=" end meta = meta:gsub(',', '|') pic = "[[" .. frame.args[1] .. "|" .. meta .. "]]" if entity ~= nil then do if frame.args[1] ~= nil then do out = frame:preprocess("{{Tooltip|".. pic .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."}}") end else out = frame:preprocess("{{Tooltip|[[Файл:Mousegif.gif|64x64px|left|middle|link=]]|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."}}") end -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} end else out = frame:preprocess("{{Tooltip|" .. pic .. "|Не найден|Предмет не найден|img=Mousegif.gif}}") end return out end return p