BIS_fnc_findSafePos findet Positionen ausserhalb der Karte?

  • Moin,


    wie der Titel schon sagt findet BIS_fnc_findSafePos auch Positionen, die ausserhalb der Karte liegen. Wie kann ich das verhindern bzw. vermeiden?


    Das hier ist der Aufruf der Funktion. Der Marker "Basis" ist vorhanden.
    _pos = [getMarkerPos "Basis", 800, 5000, 3, 0, 35, 0] call BIS_fnc_findSafePos;

  • Nehme für die Maximale distanz entweder den Radius des Markers wenn er ein Kreis ist (Das geht doch oder? Marker können ne größe haben? Ich baue keine missionen :x)
    Oder berechne wie weit die Entfernung zum Rand der map wäre und nehme das als maxDist.
    Mit deiner lösung kann die position immernoch ausserhalb der Karte liegen. Aber nur nicht nach links oder unten raus.

  • Danke erstmal, aber mit Deiner Lösung kann ich nur wenige hundert Meter entfernt was finden, da der Marker "Basis" ziemlich am Rand der Karte ist.


    Das find Safe Pos sichere Positionen außerhalb der Karte findet, finde ich schon irgendwie lustig :D

  • Lese doch aus der Config CfgWorld die Kartengröße aus und prüfe ob x & y Koordinaten < & > der Config werte sind!


    Edit:



    ist aus ner Funktion ...

  • C
    1. _position inArea [[worldSize/2,worldSize/2,0], worldSize/2, worldSize/2, 0, true];

    ist weit aus einfacher um zu checken ob es inMap ist. bzw kann auch so ausehen



    Code
    1. private _hws = worldSize/2;
    2. _position inArea [[_hws, _hws, 0], _hws, _hws, 0, true];