PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : isFlatEmpty - Ausnahme Bäume


spaccy
07.03.2016, 07:51
Hallo zusammen,

Vlt. kann mir jemand dabei helfen.
Mit isFlatEmpty kann ich prima Einheiten in Städten spawnen lassen ohne das sie in Gebäude reinglitchen. Was mich allerdings stört das er auch einen großen Abstand zu Bäumen hält.

isFlatEmpty hat im Array-Bereich den Punkt "ignored object".
https://community.bistudio.com/wiki/isFlatEmpty (https://community.bistudio.com/wiki/isFlatEmpty)
Kann man da vlt. einen Objektbereich angeben, wie z.B.: typeOf tree, isKindOf Tree oder ähnliches?


Gruß
spaccy

Lester
07.03.2016, 10:06
Dürfte so nicht gehen da Bäume, Büsche, Schilder & viele Zäune keine Objektklassen besitzen.

Aber man kann via ich glaube "nearobjects" (ist schon eine Monate her und ich mach ja nichts mehr :rolleyes:) die P3D Namen der Modelle erhalten und die via einer selbstangelegten Tabelle dann prüfen.

Die Befehle sind leider häufig nicht besonders gut durchdacht und idR werden die auch nicht erweitert sondern dann lieber ein neuer Befehl gebastelt den dann auch wieder Lücken aufweist.

Paradebeispiel dazu sind die vielen vielen Inventarbefehle. :(

spaccy
07.03.2016, 10:13
Hab ich mir schon fast gedacht.
Das hier scheint (behelfsmäßig) eine Lösung zu beinhalten:
https://forums.bistudio.com/topic/136972-need-help-checking-for-specific-objects-near-player/

Ich werd mir das mal anschauen und den Code hier posten wenn ich das umgesetzt bekommen habe.

spaccy
07.03.2016, 18:42
So, hab jetzt eine erste Version fertiggestellt.
Allerdings kann das so nicht ganz hinhauen, manche Bäume werden mit nearObjects gar nicht abgerufen.

Hier der Code dazu:



if (!isServer) exitWith {};

private ["_triggerArea", "_x", "_triggPos", "_clearPos", "_list", "_name1", "_marker"];

_triggerArea = _this select 0;

for "_x" from 1 to 10000 do
{
// zufällige Position im Tiggerbereich
_triggPos = [_triggerArea] call BIS_fnc_randomPosTrigger;

// Abfrage ob Position frei ist
_clearPos = (_triggPos) isflatempty [1, 0, 0, 10, 0, false];

// Array der umgebenden Objekte um die Zufallsposition ermitteln (6m) und in String umwandeln
_list = str (nearestObjects [_triggPos, [], 2]);

// ist ein Baum in der Nähe erlaube die Pos wieder
if (_list find "b_" > 0) then {_clearPos = _triggPos};

if (count _clearPos > 0) then
{
_name1 = [round (random 40000)] call CBA_fnc_formatNumber;
_marker = createMarker [_name1, _clearPos];
_marker setMarkerType "mil_dot";
}
else
{
_x = _x - 1;
};
};

Buliwyf
07.03.2016, 19:07
Das wird daran liegen, dass der genormte böhmische Laden seine Namen für Objekte nach Pegelstand vom Vodka benennt. Ich wette, das nicht alle Bäume mit 'b_' beginnen...

spaccy
07.03.2016, 21:00
Ich steh auf Altis in Zaros neben einem Baum (ca. 1m entfernt) und nearestObject gibt auf 6 Meter folgendes raus:



[O Alpha 1-1:1 (spaccyx),
1779942: honeybee.p3d,
1779940: honeybee.p3d,
1779965: fly.p3d,
1779938: honeybee.p3d,
1779933: honeybee.p3d,
1779941: honeybee.p3d,
1779967: honeybee.p3d,
813458: garbagewashingmachine_f.p3d,
1779973: cl_leaf3.p3d,
1779928: fly.p3d,
813450: stone_8m_f.p3d]



Hmmm ... ist der Baum vlt. eine Honigbiene? Die sind mir nähmlich noch nie aufgefallen :D.

Anmerkung: Hab noch einen Fehler entdeckt, ich habe ursprünglich nicht nach b_ gesucht, sondern nach t_, die Bäume die ich gefunden habe fangen immer mit t_ an. War ein Spreibfehler.

Lester
08.03.2016, 07:57
Bäume ja, aber du soltest auch Büsche im Blick behalten, da gibt es einige die an die größe von kleinen Bäumen rankommen bzw. sogar übertreffen.

Aber ansonsten ist die Benennung der Modelle von Grünzeug durchaus schlüssig, daran kann ich mich definitiv erinnern. ;)

Das cl_ vor dem Leaf3 steht z.B für cl_utter ansosten t_ree b_ush plus den präfix vom Gras&Unkraut, der mir gerade nicht mehr einfallen will.

spaccy
08.03.2016, 17:25
Also, mir wird das Script zu blöd. So richtig wird das nix.

Ich platziere jetzt überall rostige Dosen und lese die in ein Array ein. Dann kann ich Einheiten zufällig an verschiedenen "Dosen"-Positionen spawnen lassen, auch bei den blöden Bäumen. Dank 3D Editor macht das Platzieren fast schon Spass :naughty:.