Модуль:Entity Lookup: различия между версиями
Mhamster (обсуждение | вклад) (откат) Метка: ручная отмена |
Mhamster (обсуждение | вклад) Нет описания правки |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 5: | Строка 5: | ||
-- p | -- p.getname{args={"FreedomImplant"}} | ||
function p.getname(frame) -- {{#invoke:Entity Lookup|getname|ProtoID}} | function p.getname(frame, entid) -- {{#invoke:Entity Lookup|getname|ProtoID}} | ||
local out = "" | local out = "" | ||
local | 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 | if entity ~= nil then | ||
out = entity.name | out = entity.name | ||
Строка 18: | Строка 21: | ||
-- p | -- p.getname{args={"FreedomImplant"}} | ||
function p.getdesc(frame) -- {{#invoke:Entity Lookup|getdesc|ProtoID}} | function p.getdesc(frame, entid) -- {{#invoke:Entity Lookup|getdesc|ProtoID}} | ||
local out = "" | local out = "" | ||
local | 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 | if entity ~= nil then | ||
out = entity.desc | out = entity.desc | ||
Строка 32: | Строка 38: | ||
-- p.createtexttooltip{args={"Верхний текст", "FreedomImplant", "Файл:Honks.gif"}} | -- p.createtexttooltip{args={"Верхний текст", "FreedomImplant", "Файл:Honks.gif"}} | ||
function p.createtexttooltip(frame) -- {{#invoke:Entity Lookup|createtexttooltip|Текст|ProtoID| | function p.createtexttooltip(frame) -- {{#invoke:Entity Lookup|createtexttooltip|Текст|ProtoID|img=картиночка}} | ||
local out = " " | local out = " " | ||
local entity = p.entities[frame.args[2]] | local entity = p.entities[frame.args[2]] | ||
local | local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}") | ||
if entity ~= nil then do | if entity ~= nil then do | ||
if frame.args[" | if frame.args["img"] ~= nil then do | ||
out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}") | |||
end else | end else | ||
out = frame: | out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."}}") | ||
end | end | ||
-- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} | -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} | ||
end else | end else | ||
out = frame: | out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|Не найден|Предмет не найден|img=Mousegif.gif}}") | ||
end | end | ||
return out | return out | ||
Строка 57: | Строка 62: | ||
local pic = frame.args[1] | local pic = frame.args[1] | ||
local meta = frame.args["Мета"] | local meta = frame.args["Мета"] | ||
local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}") | |||
if meta == nil then | if meta == nil then | ||
meta = "64x64px|link=" | meta = "64x64px|link=" | ||
end | end | ||
meta = meta:gsub(',', '|') | |||
pic = "[[" .. frame.args[1] .. "|" .. meta .. "]]" | |||
if entity ~= nil then do | if entity ~= nil then do | ||
if frame.args[1] ~= nil then do | if frame.args[1] ~= nil then do | ||
out = frame:preprocess("{{Tooltip|".. pic .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."}}") | |||
end else | end else | ||
out = frame: | out = frame:preprocess("{{Tooltip|[[Файл:Mousegif.gif|64x64px|left|middle|link=]]|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."}}") | ||
end | end | ||
-- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} | -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}} | ||
end else | end else | ||
out = frame: | out = frame:preprocess("{{Tooltip|" .. pic .. "|Не найден|Предмет не найден|img=Mousegif.gif}}") | ||
end | end | ||
return out | return out |
Текущая версия от 17:52, 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}}
ТекстИмплант "свобода"
Этот имплант позволяет пользователю вырваться из наручников до трёх раз, прежде чем он перестанет функционировать.
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 .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}") end else out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\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