PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Namen mit table vergleichen



Stoned
25.07.2008, 21:10
ich habe das problem, dass ich keinen elend lagen string will sondern eine table, nur scheitere ich dann am auslesen :roll:


local buddy = string.Explode( "\n", file.Read( "buddylist.txt" ))
...
if ( table.HasValue( buddy, player:Name() ) ) then
--if ( string.find( player:Name(), buddy )== nil ) then
...


buddylist.txt

Axe
Roxas
Greekguy


das erste geht, das 2te nicht, jedoch muss beim ersten der name 100% uebereinstimmen, was ich aber nicht will...

ist es moeglich den inhalt der table via string.find mit dem namen zu vergleichen ?

BennyG
25.07.2008, 21:27
for k,v in pairs(buddy) do
if string.find(v,player:Name()) == 1 then
--COOKIES ARE AWESOME
end
end


Ist im Forum geschrieben,sollte aber gehn.

Stoned
25.07.2008, 21:51
nein geht leider nicht :/

€dit:

for _,player in pairs(player.GetAll()) do
for k,v in pairs(buddy) do
if (!string.find(v,player:Name())) then
....
end
end
end


buddies soll er ignorieren, alle anderen player aber betreffen...

oder ist es einfacher das ganze mit einer convar zu machen? :S

€dit: ich bin soweit gekommen, das ich sagen kann das es an der load methode den fehler gibt :/

wenn ich mache
local buddy = {"Joey"}
dann funktioniert es, aber wenn ich
local buddy = string.Explode( "\n", file.Read( "buddylist.txt" ))
mache, dann geht nix mehr :3

concommand.Add("testprint", function()
for k,v in pairs(whiteppl) do print(k,v) end
end)

es printet jedes ma die selbe table :/

seltsamer weiße funktioniert das ganze nur, wenn in der buddylist nur ein name steht, sobald mehrere da stehen, geht nix mehr? o.O

Stoned
26.07.2008, 14:10
sry fuer doublepost, aber kann mir keiner helfen ?

humanexecuter
27.07.2008, 16:16
concommand.Add("testprint", function()
for k,v in pairs(whiteppl) do print(k,v) end
end)



Ich war der Meinung das man das in einer Reihe schreiben muss also so:
concommand.Add("testprint", function() for k,v in pairs(whiteppl) do print(k,v) end)
wenn nicht dann sorry >,<

Lucid
27.07.2008, 16:43
wtfbuddlist = {}
wtfbuddylist.friends = {
"brot",
"autoreifen",
"klappstuhl",
"usw"
}

function wtfbuddylist.isFriend(arg)
for _, v in pairs(wtfbuddylist.friends) do
if (string.find(arg, v) ~= nil) then
return true
end
end
return false
end

local function aimbot() --funktion, um ein neues ziel fuer 'nen lua-aimbot zu suchen
local pos = LocalPlayer():GetPos()
local t = {0,0}
for _,ent in pairs(ents.GetAll()) do
if (GetAllow(ent) == true and wtfbuddylist.isFriend(ent:Name())) then
local tpos = ent:GetPos()
local dist = (tpos-pos):Length()
if (dist < t[2] or t[1] == 0) then
t = {ent, dist}
end
end
end
return t[1]
end


Ich war der Meinung das man das in einer Reihe schreiben muss also so:
concommand.Add("testprint", function() for k,v in pairs(whiteppl) do print(k,v) end)
wenn nicht dann sorry >,<

Kann man auch in mehreren reihen machen