Code:
function SucheAufDerWelt(_player, _entity, _groesse, _punkt)
local punktX1, punktX2, punktY1, punktY2, data
local gefunden = {}
local rueck
if not _groesse then
_groesse = Logic.WorldGetSize()
end
if not _punkt then
_punkt = {X = _groesse/2, Y = _groesse/2}
end
if _player == 0 then
data ={Logic.GetEntitiesInArea(_entity, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 16)}
else
data ={Logic.GetPlayerEntitiesInArea(_player,_entity, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 16)}
end
if data[1] >= 16 then -- Aufteilen angesagt
local _klgroesse = _groesse / 2
-- Ausgangspunkt ist _punkt
-- _punkt verteilen
local punktX1 = _punkt.X - _groesse / 4
local punktX2 = _punkt.X + _groesse / 4
local punktY1 = _punkt.Y - _groesse / 4
local punktY2 = _punkt.Y + _groesse / 4
rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX1,Y=punktY1})
for i = 1, #rueck do
if not IstDrin(rueck[i], gefunden) then
table.insert(gefunden, rueck[i])
end
end
rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX1,Y=punktY2})
for i = 1, #rueck do
if not IstDrin(rueck[i], gefunden) then
table.insert(gefunden, rueck[i])
end
end
rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX2,Y=punktY1})
for i = 1, #rueck do
if not IstDrin(rueck[i], gefunden) then
table.insert(gefunden, rueck[i])
end
end
rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX2,Y=punktY2})
for i = 1, #rueck do
if not IstDrin(rueck[i], gefunden) then
table.insert(gefunden, rueck[i])
end
end
else
table.remove(data,1)
for i = 1, #data do
if not IstDrin(data[i], gefunden) then
table.insert(gefunden, data[i])
end
end
end
return gefunden
end
function IstDrin(_wert, _table)
for i = 1, #_table do
if _table[i] == _wert then
return true
end
end
return false
end
Das Rad muss doch nicht immer neu Erfunden werden, wenn der Reifen platzt...
Lesezeichen