Если формат записей вашей таблицы согласован, вы можете просто разделить строки и использовать компоненты в качестве ключей на карте счетчиков.
Похоже, что записи вашей таблицы отформатированы как "[player_name]: [index]", но это не похоже на то, что вы заботитесь об индексе. Но если «:» будет в каждой записи таблицы, вы можете написать довольно надежный шаблон поиска. Вы можете попробовать что-то вроде этого:
-- use a list of entries with the format <player_name>:<some_number>
local entries = {"Cald_fan:1", "SomePerson:2", "Cald_fan:3","anotherPerson:4"}
local foundPlayerCount = {}
-- iterate over the list of entries
for i,v in ipairs(entries) do
-- parse out the player name and a number using the pattern :
-- (.+) = capture any number of characters
-- : = match the colon character
-- (%d+)= capture any number of numbers
local playerName, playerIndex = string.match(v, '(.+):(%d+)')
-- use the playerName as a key to count how many times it appears
if not foundPlayerCount[playerName] then
foundPlayerCount[playerName] = 0
end
foundPlayerCount[playerName] = foundPlayerCount[playerName] + 1
end
-- print out all the players
for playerName, timesAppeared in pairs(foundPlayerCount) do
print(string.format("%s was listed %d times", playerName, timesAppeared))
end
Если в будущем вам потребуется выполнить сопоставление с образцом, я настоятельно рекомендую эту статью о шаблонах строк lua: http://lua -users.org / wiki / PatternsTutorial
Надеюсь, это поможет!