Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 02.07.2016, 22:23   #1 (permalink)
Newbie
 
Registriert seit: 08.11.2015
Beiträge: 18
Standard Marker in einem zufälligen Feld setzen

Moin,
ich möchte auf der neuen Map(Tanoa) ein Marker in einem Reisfeld setzten. Allerdings haben Pflanzen ja kein Classname, oder?? Somit kann ich ja nicht einfach eine zufällige Position suchen und dann mit nearestObject eine Reispflanze finden. Geht das irgendwie anders oder ist das überhaupt nicht möglich?

MfG Tim
TimmK ist offline   Mit Zitat antworten
Alt 03.07.2016, 12:58   #2 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard

also es geht schon. Ich weis nur gerade nicht wo Reisfelder auf der map sind aber stelle dich mal in ein Reisfeld rein und mach
Code:
 nearestTerrainObjects [player, [], 5, false]
dann sollteste wissen wie reis bezeichnet wird und so kann man es auf der Map finden.
Nokman ist offline   Mit Zitat antworten
Alt 03.07.2016, 15:35   #3 (permalink)
Newbie
 
Registriert seit: 08.11.2015
Beiträge: 18
Standard

Ja dann bekomm ich als Rückgabe ja die ID und das Modell was genutzt wird.
Code:
[297170: b_sugarcane_sapling_row_f.p3d,297165: b_sugarcane_sapling_row_f.p3d,...]
Wenn du jetzt meinst das einzusetzen kommt xyz = [] raus.
Code:
xyz = nearestTerrainObjects [player, ["b_sugarcane_sapling_row_f"], 5, false]
Mit nearestObject und nearestObjects funktioniert es auch nicht.

MfG Tim
TimmK ist offline   Mit Zitat antworten
Alt 04.07.2016, 11:34   #4 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.727
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Falls das Reisfeld einen eigenen definierten Untergrund hat kannst du es evtl. damit finden.

https://community.bistudio.com/wiki/surfaceType


Dann müsstest du um es automatisch zu finden jedoch immer noch die Karte mit einem Dummy-Objekt was in einem bestimmten Raster über die Map wandert und den Untergrund abfragt. Ist also relativ aufwändig.

Wäre also einfacher die Positionen aller Reisfelder in ein Array aufzunehmen und aus diesem dann eine zufällige Position zu wählen.

Code:
_alleFelderPos = [[1,2,3],[3,2,1],[4,5,6]];
_randomFeldPos = selectRandom _alleFelder;
_reisMarker = createMarker ["reis",_randomFeldPos];
Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen!

Geändert von Pfandgiraffe (04.07.2016 um 11:37 Uhr).
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 05.07.2016, 19:56   #5 (permalink)
Newbie
 
Registriert seit: 08.11.2015
Beiträge: 18
Standard

Erstmal Vorweg ich habe am Anfang ausversehen Resifelder geschrieben, allerdings ist das Zuckerrohr was da auf Tanoa wächst.
Das Problem an einem Array mit allen Positionen ist das es relativ viele Zuckerrohrfelder gibt.
Es gibt ja den Befehl nearestTerrainObjects, mit dem man unter anderem jeglichen Art von Busch finden kann der in einem bestimmten Umkreis ist.
https://community.bistudio.com/wiki/...TerrainObjects
Code:
nearestTerrainObjects  [player,["BUSH"],20] ;
Unter anderem fndet man damit auf Zuckerrohr.
Wäre es nicht irgendwie möglich eine neue type name zu erstellen und dort dann nur das Zuckerrohr reinzumachen???
Code:
nearestTerrainObjects  [player,["SugarCane"],20] ;
TimmK ist offline   Mit Zitat antworten
Alt 05.07.2016, 20:11   #6 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.727
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Nicht ohne Mods oder sogar einer komplett neuen Insel. Hast du surfaceType getestet?
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 06.07.2016, 08:50   #7 (permalink)
Newbie
 
Benutzerbild von Sarogahtyp
 
Registriert seit: 20.06.2016
Beiträge: 37
Standard

Wenn du mit nearestTerrainObjects deine zuckerpflanzen als objekt bekommst, dann kannst du doch mit typeOf nachschauen ob die nen classname haben...

Wenn es einen classname gibt:
Um die arbeit der feldersuche nicht während der missi machen zu müssen, würede ich ein script schre9ben welches die komplette map scannt und alle felderpositionen in ein array packt, welches du dann mit diag_log oder copyToClipboard ausgibst. Danach kopierst du das array in ein script und kannst damit selectRandom machen.
__________________
Sarogahtyps Spawn Script Creator - SSSC
the easy way to cache ur units, vehicles and their waypoints
Sarogahtyp ist offline   Mit Zitat antworten
Alt 09.07.2016, 02:14   #8 (permalink)
Newbie
 
Registriert seit: 08.11.2015
Beiträge: 18
Standard

Hatte die letzten Tage viel zu tun, deswegen eine etwas verspätete Antwort.

@Pfandgiraffe
Der Boden ist ganz normales Grass wie es auch neben den Feldern überall ist.

@Sarog
Das Problem ist ja das es meines Wissens nach keine Classnames für Pflanzen gibt. Die Felsen haben ja auch erst mit der Einführung in den Editor ein Classname erhalten.
Auch mit typeOf wird kein Classname angezeigt, was ja bestätigt das sie keine Classnames haben.

MfG Tim

Geändert von TimmK (09.07.2016 um 02:16 Uhr).
TimmK ist offline   Mit Zitat antworten
Alt 09.07.2016, 09:22   #9 (permalink)
Newbie
 
Benutzerbild von Sarogahtyp
 
Registriert seit: 20.06.2016
Beiträge: 37
Standard

dann mach aus den zurückgegebenen objekten einen string und suche mit find nach dem modellnamen. Damit kannst du die felder 8dentifizieren.


objekt_str = str objekt;
If ( objekt_str find "b_sugarcane_sapling_row_f.p3d" != -1) then
{ hint "zuckerfeld";}
else
{hint "kein zuckerfeld";};

So sollte es gehen, hab ich aber nicht getestet.

Edit:

_worldhalf = worldSize / 2;
_farthest_point = sqrt (_worldhalf * _worldhalf + _worldhalf * _worldhalf);
_worldcenter = [_worldhalf, _worldhalf];

_sugar = (nearestTerrainObjects [_worldcenter, "BUSH", _farthest_point, false]) select
{
_its_sugar = false;
_obj_str = str _x;
if ( obj_str find "b_sugarcane_sapling_row_f.p3d" != -1) then {_its_sugar = true;};
_its_sugar
};

_sugar_posis = _sugar apply {getPos _x};
copyToClipboard str _sugar_posis;


Das sollte die map nach allen zuckerpflanzen durchsuchen und die positionen als array in die zwischenablage kopieren...
__________________
Sarogahtyps Spawn Script Creator - SSSC
the easy way to cache ur units, vehicles and their waypoints

Geändert von Sarogahtyp (09.07.2016 um 17:21 Uhr).
Sarogahtyp ist offline   Mit Zitat antworten
Alt 10.07.2016, 00:36   #10 (permalink)
Newbie
 
Registriert seit: 08.11.2015
Beiträge: 18
Standard

Diese Script sucht jetzt eine zufällige Position und sucht dann nach Zuckerrohr und setzt einen Marker:
Code:
_centerPos = []call BIS_fnc_randomPos;
_sugarPos = [];
_bushes = nearestTerrainObjects [_centerPos, ["Bush"], 200,true]; 
 for [{_x= 0},{_x <= count _bushes},{_x = _x + 1}] do  
 {  
 _testBush = _bushes select _x;  
	 if (str (_testBush) find "b_sugarcane_sapling_row_f"!=-1) then 
		{
			_sugarPos = getPos (_bushes select _x),
		}; 
		if (count _sugarPos == 1)exitWith{};
		_sugarPos;
 };   
_marker = createMarker ["Marker_1", _sugarPos];
_marker setMarkerShape "ICON";
_marker setMarkerType "hd_dot";
Übrigens sortiert nearestTerrainObjects die Objekte von weit zu nah und nicht wie es im Wiki steht von nah zu weit(wenn sort auf true ist). Wenn sort auf false steht wird von der nordöstlichsten Ecke zur südwestlichsten Ecke sortiert.

Nochmal danke für eure Hilfe
Tim

Geändert von TimmK (10.07.2016 um 00:48 Uhr).
TimmK ist offline   Mit Zitat antworten
Alt 10.07.2016, 09:57   #11 (permalink)
Newbie
 
Benutzerbild von Sarogahtyp
 
Registriert seit: 20.06.2016
Beiträge: 37
Standard

Code:
_sugarPos = nil;

while {isNil "_sugarPos"} do
{

_centerPos = [] call BIS_fnc_randomPos;
_bushes = nearestTerrainObjects [_centerPos, ["Bush"], 200,false];

{

if ((str _x) find "b_sugarcane_sapling_row_f"!=-1) exitWith {_sugarPos = getPos _x;}; 

} count _bushes;
};

_marker = createMarker ["Marker_1", _sugarPos]; 
_marker setMarkerShape "ICON"; 
_marker setMarkerType "hd_dot";
Dies deckt auch gleich den Fall ab wenn kein zuckerrohr in _bushes ist, dann wird gleich eine neue zufallsposition ermittelt und dort gesucht. Das läuft solange bis was gefunden wird.

For do ist meines wissens etwas langsamer als count und ich würd nearestTerrainObjects nicht sortieren lassen weil es dann auch schneller läuft. Du möchtest ja eh ne zufällige position haben, da ist das nicht notwendig.
__________________
Sarogahtyps Spawn Script Creator - SSSC
the easy way to cache ur units, vehicles and their waypoints

Geändert von Sarogahtyp (10.07.2016 um 10:02 Uhr).
Sarogahtyp ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Marker für Gegner unsichtbar machen? JeeperCreeper Editing & Scripting 1 01.11.2013 01:27
Marker verbergen mo0504 Editing 0 28.09.2013 14:11
Marker an Gruppe heften Phobos_4 Editing & Scripting 8 16.09.2013 11:39
Marker für Mitspieler nicht sichtbar Wolkenbeisser Multiplayer 3 08.03.2013 16:56
Multiplayer Objekt Lokalitaet und Marker TeTeT Editing & Scripting 11 04.12.2012 21:45


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116