désolé si je vous dérange maintenant, je suis encore en train d'apprendre. mais j'ai besoin d'aide. pourriez-vous me corriger et écrire comment vérifier et ensuite obtenir la valeur de tableau 2d pour vérifier plus loin et compter les points?Lua tableau contient une valeur spécifique pour vérifier plus loin
exemple de syntaxe array2d que je construis:
role = {{[name],[points],[indexpoint]},
{[...],[...],[...]}}
exemple valeur array2d que je fais:
role = {{"mike", 30, "1"},
{"michael", 40, "2"},
{"mike", 40, "2"},
{"michael", 50, "3"},
{"frost", 50, "3"},
{"nick", 60, "4"}}
ce que je voulais est. quand je cherche le nom "michael". il va détecter la valeur dans le tableau. quelque chose comme ça
local player_data = {{"michael", 40, "2"},{"michael", 50, "3"}}
donc après cela, je peux compter les points qu'il a déjà. 40 + 50 et le résultat "90", il enverra à de nouvelles variables comme resultpoint = 90
donc l'impression montrera comme ce
Player "Michael"
Your points is "90"
Here is the list of your index that you earned :
1. earn 40 points in index point "2"
2. earn 50 points in index point "3"
mon code long ici:
role = {{"mike", "30", "1"},
{"michael", "40", "2"},
{"mike", "40", "2"},
{"michael", "50", "3"},
{"frost", "50", "3"},
{"nick", "60", "4"}}
function check_role1(tab, val)
for index, value in ipairs (tab) do
-- We grab the first index of our sub-table instead for player name
if value[1] == val then
return true
end
end
return false
end
function check_role2(tab, val)
for index, value in ipairs (tab) do
-- We grab the third index of our sub-table instead for index point
if value[3] == val then
return true
end
end
return false
end
function detectroles(name)
pn = name
if check_role1 (role, pn) then
print ('Yep')
--[[for i = 1, #role do
player_checkname[i] = role[i][1] -- Get Player Name From Array for checking further
player_checkpnt[i] = role[i][2] -- Get Player Point From Array for checking further
player_checkidpnt[i] = role[i][3] -- Get Player Point From Array for checking further]]
-- is this correct code to get value ?
end
else
print ('You dont earn any points')
end
end
detectroles("jack") -- this is call function, for checking name jack if he is in array or not
est-ce vraiment possible? s'il y a un moyen simple ou plus de code, faites le moi savoir. Je sais, c'est trop de code. Je suis encore débutant
Ne serait-il pas plus facile de stocker les joueurs dans un dictionnaire, où chaque nom est égal à un tableau de leurs points? Ensuite, vous avez des recherches rapides et faciles, et faciles à insérer des scores. – warspyking
umm, comme quoi? – Han
Stockez les données comme suit: 'données locales = {Nom1 = {score1, score2}, Name2 = {score1, score2}}' puis pour accéder à une liste de chaque score qu'une personne possède: 'data.Name1' – warspyking