Old McDonald hat uns ja das wunderbare Programm EntityOut.Exe geschrieben, mit dem man alle Entities aus der Map auslesen kann.
Nun habe ich flott dazu ein Programm geschrieben, mit dem man aus diesen Angaben einen Bereich (Rechteck) auswählen kann.
Die in diesem Rechteck vorhandenen Entities werden dann in eine Funktion geschrieben, die die IDs der Entities zurück gibt.
Bedienung ist einfach.
Dann ist die Funktion in Form von:
function HoleEntities() local entitiesImRechteck = {}; local AddEntity = function( _x, _y) table.insert(entitiesImRechteck, assert(Logic.GetEntityAtPosition(_x , _y),"Entity ist nicht mehr da")); end AddEntity(3004.98, 3286.27); AddEntity(3220.22, 3284.31); AddEntity(2464.06, 3500); AddEntity(2788.76, 3277.68); AddEntity(2464, 3100.641); AddEntity(2576.8, 3273.62); AddEntity(3436.22, 3289.79); AddEntity(3858.5, 3299.14); AddEntity(3870, 4030); AddEntity(2910.1, 4026.609); AddEntity(3770, 2570); AddEntity(2810.1, 2573.39); AddEntity(3230, 4030); AddEntity(3530, 4030); AddEntity(2613.35, 4030); AddEntity(2513.35, 2570); AddEntity(3130, 2570); AddEntity(3430, 2570); AddEntity(3770, 2116.12); AddEntity(2494.58, 2116.12); AddEntity(3111.22, 2116.12); AddEntity(3470, 2119.86); AddEntity(2821.96, 2098.42); AddEntity(3956.859, 3503.109); AddEntity(3952.289, 3098.75); AddEntity(3653.74, 3300.32); AddEntity(2420, 2017.21); AddEntity(2714.01, 2000.55); AddEntity(3080, 2000.1); AddEntity(3420, 2020); AddEntity(3789.359, 2016.26); AddEntity(1940, 2342.86); AddEntity(2622.33, 3844.699); AddEntity(3684.09, 3854.16); AddEntity(3307.051, 3891.869); AddEntity(2754.94, 2531.62); AddEntity(3626.051, 2435.76); AddEntity(2344.15, 2070.92); AddEntity(2180, 3980); AddEntity(2133.88, 3880); AddEntity(3374.09, 2218.04); AddEntity(3411.66, 1956.1); AddEntity(1906.54, 3796.18); AddEntity(2615.39, 3970.32); AddEntity(3674.689, 2597.1); AddEntity(3087.66, 1997.35); AddEntity(3685.189, 1966.87); AddEntity(2488.71, 2127.63); AddEntity(2062.36, 2620.8); AddEntity(2020.99, 2138.13); AddEntity(2066.05, 1721.66); AddEntity(2452.47, 1582.25); AddEntity(2923.28, 1597.59); AddEntity(2102.28, 1942.14); AddEntity(2117.58, 2439.06); AddEntity(3672.891, 1607.73); AddEntity(3813.119, 1691.97); AddEntity(3237.27, 1748.14); AddEntity(2399.97, 1723.57); AddEntity(2689.07, 1583.38); AddEntity(3177.47, 1590.85); AddEntity(2598.06, 2450.53); AddEntity(2897.83, 1777.96); AddEntity(3396.971, 1626.99); AddEntity(4065.41, 1808.75); AddEntity(4123.01, 2361.53); AddEntity(4186.26, 2147.08); AddEntity(3551.801, 1635.2); AddEntity(3978.051, 1672.52); AddEntity(2055.64, 1971.3); AddEntity(2278.73, 1698.35); AddEntity(4069.99, 3295.77); AddEntity(2372.29, 3276.53); AddEntity(4142.359, 2602.89); AddEntity(4043.779, 1945.14); AddEntity(2226.58, 2160.93); AddEntity(3164.56, 4141.471); AddEntity(2414.76, 4016.34); AddEntity(4022.67, 3935.539); AddEntity(3346.811, 3958.4); AddEntity(2962.4, 4065.17); AddEntity(2425.01, 4144.9); AddEntity(2354, 2755.45); AddEntity(2538.2, 2476.6); AddEntity(2885.1, 2493.39); AddEntity(3512.83, 2653.49); AddEntity(3950.891, 2469.72); AddEntity(2982.2, 2721.17); AddEntity(3793.9, 2230.2); AddEntity(3698.24, 1942.15); AddEntity(3252.38, 2049.96); AddEntity(2835.38, 1987.44); AddEntity(2982.67, 2195.5); AddEntity(2366.01, 1873.63); AddEntity(2570.27, 2125.81); AddEntity(2415.59, 2146.27); AddEntity(2783.5, 4100.711); AddEntity(3086.92, 3986.27); AddEntity(3709.4, 4037.561); AddEntity(2784.08, 4029.551); AddEntity(3099.55, 2518.21); AddEntity(2694.96, 2661.24); AddEntity(2334.3, 2519.62); AddEntity(3917.789, 2729.11); AddEntity(3515.891, 2210.02); AddEntity(3373.98, 2054.85); AddEntity(2936.25, 2012.01); AddEntity(2809.24, 2090.62); AddEntity(2471.52, 2048.95); AddEntity(3230.24, 2591.63); AddEntity(3406.27, 2476.02); AddEntity(3307.93, 2521.88); AddEntity(2467.33, 4146.039); AddEntity(3615.211, 2489.38); AddEntity(3079.82, 2174.18); AddEntity(2295.5, 3535.15); AddEntity(2295, 3056.01); AddEntity(3220.2, 3284.301); AddEntity(1286.84, 3488.641); AddEntity(1575.01, 3189.81); return entitiesImRechteck; end
in der Zwischenablage. =⇒ Rechte Maustaste ins Script und einfügen.
Einfache Anwendung:
myEntities = HoleEntities() for i = 1, table.getn(myEntities ) do DestroyEntity(myEntities [i]) end
Und alles ist futsch.
Wie gesagt braucht man die EntityOut.Exe