Moduł:H2H: Różnice pomiędzy wersjami
Wygląd
Nie podano opisu zmian |
Nie podano opisu zmian |
||
| Linia 9: | Linia 9: | ||
-- team2 = przeciwnik | -- team2 = przeciwnik | ||
-- | -- | ||
-- Wykorzystuje nazwa_statystyki1 / nazwa_statystyki2 | -- Wykorzystuje nazwa_statystyki1 / nazwa_statystyki2. | ||
-- | -- | ||
-- Zawiera: | -- Zawiera: | ||
| Linia 43: | Linia 42: | ||
local function sql(value) | local function sql(value) | ||
value = tostring(value or "") | |||
return mw.ustring.gsub(value, "'", "''") | return mw.ustring.gsub(value, "'", "''") | ||
end | end | ||
| Linia 54: | Linia 54: | ||
-- ===================================================== | -- ===================================================== | ||
-- WAŻNE: | |||
-- Nie wolno robić: | |||
-- | |||
-- tonumber(mw.ustring.gsub(...)) | |||
-- | |||
-- ponieważ gsub zwraca dwie wartości. | |||
-- Druga wartość może zostać potraktowana | |||
-- przez tonumber jako podstawa systemu liczbowego. | |||
-- | |||
local function liczba(value) | local function liczba(value) | ||
| Linia 60: | Linia 69: | ||
end | end | ||
local tekst = tostring(value) | |||
tekst = mw.ustring.gsub( | |||
tekst, | |||
"%s+", | |||
"" | |||
) or 0 | ) | ||
return tonumber(tekst) or 0 | |||
end | end | ||
| Linia 77: | Linia 88: | ||
end | end | ||
local wartosc = | |||
(wygrane / mecze) * 100 | (wygrane / mecze) * 100 | ||
) | |||
local tekst = | |||
string.format( | |||
"%.1f", | |||
wartosc | |||
) | |||
tekst = | |||
mw.ustring.gsub( | |||
tekst, | |||
"%.", | |||
"," | |||
) | |||
return tekst .. "%" | |||
end | end | ||
-- ===================================================== | |||
-- WYNIK TEAM1 | |||
-- ===================================================== | |||
local function wynikDruzyny(row) | local function wynikDruzyny(row) | ||
local g1 = liczba(row.gole1) | local g1 = | ||
local g2 = liczba(row.gole2) | liczba(row.gole1) | ||
local g2 = | |||
liczba(row.gole2) | |||
if row.ns1 == team1 then | if row.ns1 == team1 then | ||
| Linia 104: | Linia 135: | ||
end | end | ||
-- ===================================================== | |||
-- DOM / WYJAZD TEAM1 | |||
-- ===================================================== | |||
local function miejsce(row) | local function miejsce(row) | ||
| Linia 119: | Linia 154: | ||
end | end | ||
-- ===================================================== | |||
-- NAZWA MECZU | |||
-- ===================================================== | |||
local function nazwaMeczu(row) | local function nazwaMeczu(row) | ||
local d1 = row.druzyna1 or "" | local d1 = | ||
local d2 = row.druzyna2 or "" | row.druzyna1 or "" | ||
local d2 = | |||
row.druzyna2 or "" | |||
local strona = row.strona_meczu or "" | local strona = | ||
row.strona_meczu or "" | |||
local tekst = | local tekst = | ||
| Linia 144: | Linia 187: | ||
end | end | ||
-- ===================================================== | |||
-- PARSOWANIE WYNIKU KWARTY | |||
-- ===================================================== | |||
local function parseWynikCzesciowy(value) | local function parseWynikCzesciowy(value) | ||
if | if value == nil or value == "" then | ||
return nil, nil | return nil, nil | ||
end | end | ||
local tekst = | |||
tostring(value) | |||
local a, b = | local a, b = | ||
tekst:match( | |||
"(%d+)%s*:%s*(%d+)" | "(%d+)%s*:%s*(%d+)" | ||
) | ) | ||
| Linia 160: | Linia 210: | ||
end | end | ||
return tonumber(a), tonumber(b) | return | ||
tonumber(a), | |||
tonumber(b) | |||
end | end | ||
| Linia 210: | Linia 262: | ||
{ | { | ||
where = | where = | ||
"(" .. | |||
"(" .. | "(" .. | ||
"Mecze.nazwa_statystyki1='" .. | "Mecze.nazwa_statystyki1='" .. | ||
| Linia 216: | Linia 270: | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team2SQL .. | team2SQL .. | ||
" | ")" .. | ||
" OR (" .. | |||
" OR " .. | |||
"(" .. | |||
"Mecze.nazwa_statystyki1='" .. | "Mecze.nazwa_statystyki1='" .. | ||
team2SQL .. | team2SQL .. | ||
| Linia 223: | Linia 280: | ||
"Mecze.nazwa_statystyki2='" .. | "Mecze.nazwa_statystyki2='" .. | ||
team1SQL .. | team1SQL .. | ||
" | ")" .. | ||
")", | |||
orderBy = | orderBy = | ||
| Linia 344: | Linia 403: | ||
lista, | lista, | ||
roznica, | roznica, | ||
item | item | ||
) | ) | ||
if #lista == 0 then | if #lista == 0 then | ||
item.wartosc = roznica | item.wartosc = | ||
roznica | |||
table.insert( | table.insert( | ||
| Linia 368: | Linia 427: | ||
if roznica > obecna then | if roznica > obecna then | ||
item.wartosc = roznica | item.wartosc = | ||
roznica | |||
lista[1] = item | lista[1] = | ||
item | |||
elseif roznica == obecna then | elseif roznica == obecna then | ||
item.wartosc = roznica | item.wartosc = | ||
roznica | |||
table.insert( | table.insert( | ||
| Linia 398: | Linia 460: | ||
miejsce(row) | miejsce(row) | ||
if zdobyte and stracone and miejsceMeczu then | if zdobyte and | ||
stracone and | |||
miejsceMeczu then | |||
local wynikMeczu | local wynikMeczu | ||
if zdobyte > stracone then | if zdobyte > stracone then | ||
wynikMeczu = "W" | wynikMeczu = "W" | ||
elseif zdobyte < stracone then | elseif zdobyte < stracone then | ||
wynikMeczu = "P" | wynikMeczu = "P" | ||
else | else | ||
wynikMeczu = "R" | wynikMeczu = "R" | ||
end | end | ||
-- ============================================= | -- ============================================= | ||
-- | -- OGÓŁEM | ||
-- ============================================= | -- ============================================= | ||
local b = | |||
bilans.wszystkie | bilans.wszystkie | ||
b.mecze = | |||
b.mecze + 1 | |||
b.punktyZdobyte = | |||
b.punktyZdobyte + | |||
zdobyte | |||
b.punktyStracone = | |||
b.punktyStracone + | |||
stracone | stracone | ||
| Linia 429: | Linia 503: | ||
if wynikMeczu == "W" then | if wynikMeczu == "W" then | ||
b.wygrane = | |||
b.wygrane + 1 | |||
elseif wynikMeczu == "P" then | elseif wynikMeczu == "P" then | ||
b.przegrane = | |||
b.przegrane + 1 | |||
end | end | ||
| Linia 441: | Linia 515: | ||
-- ============================================= | -- ============================================= | ||
-- | -- DOM / WYJAZD | ||
-- ============================================= | -- ============================================= | ||
local | local bd = | ||
bilans[miejsceMeczu] | bilans[miejsceMeczu] | ||
bd.mecze = | |||
bd.mecze + 1 | |||
bd.punktyZdobyte = | |||
bd.punktyZdobyte + | |||
zdobyte | zdobyte | ||
bd.punktyStracone = | |||
bd.punktyStracone + | |||
stracone | stracone | ||
| Linia 461: | Linia 535: | ||
if wynikMeczu == "W" then | if wynikMeczu == "W" then | ||
bd.wygrane = | |||
bd.wygrane + 1 | |||
elseif wynikMeczu == "P" then | elseif wynikMeczu == "P" then | ||
bd.przegrane = | |||
bd.przegrane + 1 | |||
end | end | ||
| Linia 512: | Linia 586: | ||
elseif roznica < 0 then | elseif roznica < 0 then | ||
dodajRekordMeczowy( | dodajRekordMeczowy( | ||
rekordyMeczowe.porazka[miejsceMeczu], | rekordyMeczowe.porazka[miejsceMeczu], | ||
math.abs(roznica), | |||
item | item | ||
) | ) | ||
| Linia 558: | Linia 629: | ||
end | end | ||
else | |||
aktualnaSeria.wszystkie.W = 0 | |||
aktualnaSeria.wszystkie.P = 0 | |||
end | end | ||
| Linia 594: | Linia 670: | ||
sr.P = s.P | sr.P = s.P | ||
end | end | ||
else | |||
s.W = 0 | |||
s.P = 0 | |||
end | end | ||
| Linia 603: | Linia 684: | ||
-- ===================================================== | -- ===================================================== | ||
-- REKORDY INDYWIDUALNE | -- REKORDY INDYWIDUALNE TEAM1 | ||
-- ===================================================== | -- ===================================================== | ||
| Linia 641: | Linia 721: | ||
} | } | ||
-- ===================================================== | |||
-- ZAWODNICY TEAM1 | |||
-- ===================================================== | |||
local fieldsZawodnicy = table.concat({ | local fieldsZawodnicy = table.concat({ | ||
| Linia 683: | Linia 767: | ||
where = | where = | ||
"(" .. | "(" .. | ||
"(M.nazwa_statystyki1='" .. | |||
"(" .. | |||
"M.nazwa_statystyki1='" .. | |||
team1SQL .. | team1SQL .. | ||
"' AND " .. | "' AND " .. | ||
"M.nazwa_statystyki2='" .. | "M.nazwa_statystyki2='" .. | ||
team2SQL .. | team2SQL .. | ||
" | ")" .. | ||
" OR " .. | " OR " .. | ||
"(M.nazwa_statystyki1='" .. | "(" .. | ||
"M.nazwa_statystyki1='" .. | |||
team2SQL .. | team2SQL .. | ||
"' AND " .. | "' AND " .. | ||
"M.nazwa_statystyki2='" .. | "M.nazwa_statystyki2='" .. | ||
team1SQL .. | team1SQL .. | ||
" | ")" .. | ||
")" .. | ")" .. | ||
| Linia 728: | Linia 815: | ||
local lista = | local lista = | ||
tabela[miejsceMeczu] | tabela[miejsceMeczu] | ||
if #lista == 0 then | if #lista == 0 then | ||
| Linia 778: | Linia 866: | ||
local miejsceMeczu = | local miejsceMeczu = | ||
miejsce(row) | miejsce(row) | ||
if miejsceMeczu then | if miejsceMeczu then | ||
| Linia 873: | Linia 962: | ||
-- ===================================================== | -- ===================================================== | ||
-- NAJLEPSI STRZELCY RYWALIZACJI | -- NAJLEPSI STRZELCY RYWALIZACJI | ||
-- ===================================================== | -- ===================================================== | ||
local strzelcy = { | local strzelcy = { | ||
[team1] = {}, | [team1] = {}, | ||
[team2] = {} | [team2] = {} | ||
} | } | ||
-- TEAM1 | |||
if zawodnicy then | if zawodnicy then | ||
| Linia 889: | Linia 981: | ||
row.druzyna_zawodnika or "" | row.druzyna_zawodnika or "" | ||
if druzyna == team1 then | if druzyna == team1 then | ||
strzelcy[team1][ | strzelcy[team1][row.zawodnik] = | ||
( | ( | ||
strzelcy[team1][ | strzelcy[team1][row.zawodnik] | ||
or 0 | |||
) | ) | ||
+ | + | ||
| Linia 910: | Linia 998: | ||
-- | -- TEAM2 | ||
local zawodnicy2 = | local zawodnicy2 = | ||
mw.ext.cargo.query( | mw.ext.cargo.query( | ||
"UdzialZawodnika=U,Mecze=M", | "UdzialZawodnika=U,Mecze=M", | ||
"U.zawodnik=zawodnik,U.druzyna=druzyna,U.gol=gol", | |||
"U.zawodnik=zawodnik," .. | |||
"U.druzyna=druzyna," .. | |||
"U.gol=gol", | |||
{ | { | ||
join = | join = | ||
| Linia 922: | Linia 1014: | ||
where = | where = | ||
"(" .. | "(" .. | ||
"(M.nazwa_statystyki1='" .. | |||
"(" .. | |||