Модуль:Config: различия между версиями
Нет описания правки |
Lord (обсуждение | вклад) Нет описания правки |
||
| (не показано 9 промежуточных версий 2 участников) | |||
| Строка 170: | Строка 170: | ||
["own_goals"] = { start = 2006, anti_prize = true, get_val = function(stats) return stats.own_goals end }, | ["own_goals"] = { start = 2006, anti_prize = true, get_val = function(stats) return stats.own_goals end }, | ||
["head_goals"] | ["head_goals"] = { -- не записывались в конкретных матчах на ЧТМ-2022 и ЧТМ-2026, | ||
["heel_goals"] | -- а просто подсчитывались суммарно | ||
start = 2022, | |||
get_val = function(stats) return stats.goals.head end, | |||
adjustments = { | |||
players = { | |||
["Диман"] = { [2022] = 3, [2026] = 4 }, | |||
["Антон"] = { [2026] = 1 }, | |||
["Макс"] = { [2026] = 1 }, | |||
} | |||
} | |||
}, | |||
["heel_goals"] = { -- не записывались в конкретных матчах на ЧТМ-2026, | |||
-- а просто подсчитывались суммарно | |||
start = 2026, | |||
get_val = function(stats) return stats.goals.heel end, | |||
adjustments = { | |||
players = { | |||
["Геныч"] = { [2026] = 2 }, | |||
["Макс"] = { [2026] = 1 }, | |||
["Серёга"] = { [2026] = 1 }, | |||
} | |||
} | |||
}, | |||
["free_kick_goals"] = { start = 2026, get_val = function(stats) return stats.goals.free_kick end }, | ["free_kick_goals"] = { start = 2026, get_val = function(stats) return stats.goals.free_kick end }, | ||
["goalie_goals"] = { start = 2022, get_val = function(stats) return stats.goals.goalie end }, | ["goalie_goals"] = { start = 2022, get_val = function(stats) return stats.goals.goalie end }, | ||
| Строка 182: | Строка 204: | ||
}, | }, | ||
["assist_mega_tricks"] = { start = 2026, get_val = function(stats) return stats.assists.hat_trick + stats.assists.poker + stats.assists.penta end }, | ["assist_mega_tricks"] = { start = 2026, get_val = function(stats) return stats.assists.hat_trick + stats.assists.poker + stats.assists.penta end }, | ||
["clearances"] | ["clearances"] = { -- не записывались в конкретных матчах на ЧТМ-2022 и ЧТМ-2026 | ||
-- а просто подсчитывались суммарно | |||
start = 2022, | |||
get_val = function(stats) return stats.clearances end, | |||
adjustments = { | |||
players = { | |||
["Диман"] = { [2022] = 4, [2026] = 11 }, | |||
["Макс"] = { [2026] = 5 }, | |||
["Геныч"] = { [2026] = 2 }, | |||
["Антон"] = { [2026] = 1 }, | |||
["Ринат"] = { [2026] = 1 }, | |||
["Диман Е."] = { [2026] = 1 }, | |||
["Эльнур"] = { [2026] = 1 }, | |||
} | |||
} | |||
}, | |||
["yellow_cards"] = { start = 2038, anti_prize = true, get_val = function(stats) return stats.cards.yellow end }, | ["yellow_cards"] = { start = 2038, anti_prize = true, get_val = function(stats) return stats.cards.yellow end }, | ||
["red_cards"] = { start = 2038, anti_prize = true, get_val = function(stats) return stats.cards.red end }, | ["red_cards"] = { start = 2038, anti_prize = true, get_val = function(stats) return stats.cards.red end }, | ||
| Строка 193: | Строка 230: | ||
["pens_saved"] = { start = 2006, get_val = function(stats) return stats.penalties.saved_as_goalie end }, | ["pens_saved"] = { start = 2006, get_val = function(stats) return stats.penalties.saved_as_goalie end }, | ||
["caused_pens"] = { start = 2026, anti_prize = true, get_val = function(stats) return stats.penalties.caused_pens end }, | ["caused_pens"] = { start = 2026, anti_prize = true, get_val = function(stats) return stats.penalties.caused_pens end }, | ||
["clean_sheets"] = { -- статистика до ЧТМ-2022 не велась, 8 матчей из 14 восстановлены по косвенным точечным признакам | |||
["clean_sheets"] | start = 2006, | ||
["matches"] = { start = 2022 | get_val = function(stats) return stats.clean_sheets end, | ||
["field_matches"] = { start = 2022 | adjustments = { | ||
totals = { | |||
["total"] = 6 -- Это надо только к колонке "Всего" добавлять, потому что невозможно установить не только игроков, но даже турниры | |||
}, | |||
players = { | |||
["Диман"] = { [2006] = 2, [2010] = 1, [2014] = 1 }, | |||
["Макс"] = { [2006] = 1 }, | |||
["Крюча"] = { [2006] = 1 }, | |||
["Герыч"] = { [2010] = 1 }, | |||
["Диман Е."] = { [2014] = 1 }, | |||
} | |||
} | |||
}, | |||
["matches"] = { start = 2022, get_val = function(stats) return stats.matches_total or 0 end }, | |||
["field_matches"] = { start = 2022, get_val = function(stats) return stats.matches_field or 0 end }, | |||
["plus_minus"] = { start = 2022, anti_prize = true, get_val = function(stats) return stats.plus_minus end, | ["plus_minus"] = { start = 2022, anti_prize = true, get_val = function(stats) return stats.plus_minus end, | ||
adjustments = { | adjustments = { | ||
| Строка 573: | Строка 624: | ||
Не используй хреновины, которые появились только в Lua 5.2 и далее, | Не используй хреновины, которые появились только в Lua 5.2 и далее, | ||
в частности оператор goto и метки (::continue::) | в частности оператор goto и метки (::continue::) | ||
4 | |||
Пожалуйста, ВСЕГДА обращай внимание на то, что общее число голов/передач и призы лучшему бомбардиру (Золотой Башмак) | |||
и лучшему ассистенту — это РАЗНЫЕ сущности. Общее число голов/передач тупо считается по общей сумме. А призы | |||
бомбардирам и ассистентам раздаются по количеству голов/передач за одну конкретную команду со сложным | |||
собственным тайбрейкером в случае равенства. | |||
5 | |||
При загрузке из Модуль:Data/GrandStats.json | |||
Вот что написал Gemini Pro: | |||
"Ах, чёрт возьми! Прости, это классическая и очень коварная ловушка парсера MediaWiki, о которой я на секунду забыл, | |||
когда наводил красоту в коде. Дело в том, что когда mw.text.jsonDecode разворачивает JSON, движок PHP | |||
(на котором работает Вики) видит ключи вроде "2006". PHP автоматически и принудительно превращает любые ключи, | |||
состоящие только из цифр, в числовые индексы (integers). В итоге, когда таблица возвращается в Lua, | |||
ключом становится число 2006, а не строка "2006". В своей первой успешной версии я использовал двойную проверку | |||
tab[year] or tab[tostring(year)], и это спасло ситуацию. Но в версии с медалями я решил «сделать код чище», | |||
принудительно переведя всё в строки (y_str = tostring(year)), и стал искать только по строкам. | |||
Разумеется, Lua строк не нашёл, вернул nil, и все ячейки оказались пустыми." | |||
--]] | --]] | ||