If I understand your problem correctly, you forgot to select score values, and to order them in the outer query ...
SELECT tmp.lidnr, tmp.dicipline, tmp.score
FROM (
SELECT
lidnr, dicipline, score,
IF( @prev <> lidnr, @rownum := 1, @rownum := @rownum+1 ) AS rank,
@prev := lidnr
FROM scores t
JOIN (SELECT @rownum := NULL, @prev := 0) AS r
ORDER BY t.lidnr
) AS tmp
WHERE tmp.rank <=5
ORDER BY lidnr asc, dicipline asc, score desc;
+-------+-----------+-------+
| lidnr | dicipline | score |
+-------+-----------+-------+
| 10 | ZKG | 99 |
| 10 | ZKG | 88 |
| 10 | ZKG | 75 |
| 10 | ZKG | 75 |
| 10 | ZKG | 66 |
| 220 | MKL | 75 |
| 220 | MKL | 65 |
| 220 | MKL | 65 |
| 220 | MKL | 45 |
| 220 | MKL | 45 |
+-------+-----------+-------+