![]() |
#1 (permalink) |
![]() ![]() Registriert seit: 01.12.2006
Beiträge: 157
|
![]()
Ich möchte mir die Position einer Einheit in einer Funkmitteilung anzeigen lassen.
z.B. soldat1 sidechat "Sodat2 ist bei Position 036008" Wie kann ich mir die Katenkoordinaten einer Einheit auslesen? Ich möchte lediglich die Koordinaten des Gitternetzes der Landschaftskarte . |
![]() |
![]() |
#3 (permalink) |
![]() ![]() Registriert seit: 01.12.2006
Beiträge: 157
|
![]()
Das war ja wieder super einfach. Ich kannst leider gerade nicht mehr ausprobieren, da ich nicht mehr an meinem Spielerechner bin, aber laut dem hier: mapGridPosition - Bohemia Interactive Community ist es genau das was ich suchte. Danke.
|
![]() |
![]() |
#6 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
Leg über die Städte einen "Jeder"-Auslöser. Aus denen kannst du auslesen, wer im Bereich einer Stadt ist.
Wie man "Auslesen" kann, findest du hier: Problem bei der bedingung anwesenheit |
![]() |
![]() |
#7 (permalink) |
![]() ![]() Registriert seit: 01.12.2006
Beiträge: 157
|
![]()
Mir kommt es gar nicht so drauf an, welche Einheit in der Stadt ist. Ich möchte wissen ob es möglich ist sich einen Städtenamen auslesen zu lassen.
Wenn ich mich richtig erinnere wurden mir von der Ki, in Arma2, Funkmeldungen gesagt. z.B. "Feinde in Zelengorsk". Wenn die Ki dies kann, dann muss es doch auch einen Scriptbefehl geben, welcher die Städtenamen so ausliest, wie der Befehl mapGridPosition die Koordinaten der Karte ausgibt. |
![]() |
![]() |
#10 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
Ich sehe hier keinen Nachteil. Du brauchst ja den Auslöser über der Stadt um festzustellen ob Feinde in der Stadt sind. Den Text der Meldung musst du so oder so schreiben. Darin führst du dann den Namen der Stadt an, für die der Auslöser ist.
Das muss alles programmiert werden. Das kann dir kein Befehl abnehmen. |
![]() |
![]() |
#12 (permalink) |
![]() ![]() |
![]()
ja schon. über recht aufwändiges scripting.
er könnte eine spiellogik über die stadt setzen um anschließend die entfernung der unit die etwas funken soll zu der logik abzufragen um daraufhin einen passend vorkenfektionierten text abspulen zu lassen, jenachdem welche stadt eben am nähesten liegt. is aber im endeffekt das gleiche, denn der text muss trotzdem manuell eingegeben werden. ob sich der aufwand da lohnt is fraglich...
__________________
Niemand hat die Absicht eine Tüte zu bauen! ![]() ___<<<A3 Wounding System>>>___ |
![]() |
![]() |
#13 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
Das geht mit dem Koordinatensystem allein. Man braucht nur die Positionen der Städte in einem Array speichern und eine (gar nicht so schwierige) Abfrage mit forEach erstellen, welche mit dem Befehl distance die Positionen aus dem Array zu einer beliebigen Position vergleicht.
|
![]() |
![]() |
#14 (permalink) |
![]() ![]() Registriert seit: 01.06.2009
Beiträge: 103
|
![]() Natürlich ist das möglich. Auf den Originalkarten sind eigentlich alle Siedlungen auch als Locations definiert. Locations haben eine ganze Reihe von Eigenschaften (Position, Name, Typ, Radius, Ausrichtung, Text, Seitenzugehörigkeit, usw.) welche sich entsprechend Abfragen lassen. Kopiere mal folgenden Code in einen Funk-Auslöser: Code:
hint format["%1", (text (nearestLocation [(getpos player),"NameVillage"]))] Siedlungen sind in drei unterschiedlichen class- typen definiert "NameVillage" für Dörfer, "NameCity" für Städte und "NameCityCapital" für Grossstädte, welche sich leider nicht über eine gemeinsame Oberklasse abfragen lassen. Der Befehl "nearestLocation" akzeptiert aber nur eine einzige class nach der gesucht wird und liefert auch nur die nächste der gesuchten class entsprechende Location zurück. Anders der Befehl "nearestLocations". Ihm kann ich eine Array mit classen angeben nach welchen ich suchen möchte, muss ihm aber auch noch zusätzlich einen Suchradius angeben. Dieser Befehl liefert alle Locations, welche sich im Suchradius befinden und den gesuchten classen entsprechen sortiert nach ihrer Distanz zur Ausgangssuchposition (naheste Location zuerst) in Form eines Arrays. Obiges Beispiel mit diesem Befehl: Code:
hint format["%1", (text (nearestLocations [(getpos player),["NameVillage","NameCity","NameCityCapital"],1000]select 0))] Übrigens kann man natürlich auch Abfragen, ob sich eine bestimmte Position (z.B die des Spielers) innerhalb einer bestimmten Siedlung befindet: Code:
(getpos Player) in (nearestLocation [(getpos player), "NameVillage"]) Einige "Makel" hat die ganze Locations- Geschichte jedoch. So z.B. deckt der Radius einer Dorflocation nicht immer auch wirklich das ganze Dorfgebiet ab oder liegt die Position der Dorflocation nicht auch zwingend in der Mitte des Dorfes. Es gibt übrigens auch im Funktionsmanager-Modul mindest eine Funktion die einem Infos zu Locations anzeigt. |
![]() |
![]() |
#15 (permalink) |
![]() ![]() Registriert seit: 01.12.2006
Beiträge: 157
|
![]()
Genau das ist es was ich suchte. So wie es Vocoder beschrieb, kann die Ki die Städtenamen auslesen. Mir fehlte nur der Befehl hierzu.
Danke für die präzisen Ausführungen. Diese Zeile, war fast exakt der Befehl den ich benötigte. Vielen Dank Asso-Loki. Mich würde noch interessieren, wie du die Befehle gefunden hast. Ich habe im Wiki die Suchbegriffe town und village verwendet und bin nicht schlau geworden. |
![]() |
![]() |
#16 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
Kaum zu glauben, was bei Arma bereits alles "natürlich möglich ist". Schade, dass das Spiel, durch die enorm fehlerhaften Verkaufsversionen, einen so vernichtenden Fehlstart hatte.
Innerhalb einer bestimmten Stadt erfordert allerdings die Eingabe des Stadtnamens und eine etwas umfangreichere Abfrage. Wie Asso-Loki bereits sagte, ist das Stadtgebiet dabei leider nicht zur gänze abgedeckt, ja geradezu unbefriedigend! z.B. bei "NameVillage" misst der Bereich nur einen 100m Radius vom ersten Buchstaben des Stadtnamens aus. Wer auf der sicheren Seite sein will, muss einen eigenen Auslöserbereich anlegen. |
![]() |
![]() |
#17 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]() Das hat was mit "Location" zu tun: createLocation - Bohemia Interactive Community Location = createLocation [className, position, sizeX, sizeY] Den genauen Umgang damit habe ich noch nicht ganz durchschaut. |
![]() |
![]() |
#18 (permalink) |
![]() ![]() Registriert seit: 01.06.2009
Beiträge: 103
|
![]() Richtig. ![]() Ja, teilweise sehr unbefriedigend! Locations könnten - wenn sie den von den Map- Entwicklern mit Sinn, Verstand und Sorgfalt gesetzt worden wären / würden - ein mächtiges Hilfsmittel sein. Jupp oder man legt eigene, besser platzierte Locations mit besserer Ausnützung der möglichen Infos und Einstellmöglichkeiten über die bereits gesetzten. Eine Location braucht normalerweise weniger Rechenzeit als ein Auslöser der ja meist - wie eine Scriptschlaufe - in einem hohen Intervall auf die Erfüllung seiner Bedingungen abgefragt wird. Locations bieten auch einiges an Einstellmöglichkeiten, welche man über Befehle und Anweisungen manipulieren kann. |
![]() |
![]() |
#20 (permalink) |
![]() ![]() Registriert seit: 08.06.2009
Ort: Düsseldorf
Beiträge: 159
|
![]()
So, da mir befohlen wurde, hier meine Frage weiter zu stellen werde ich das mal tun.
Wollen wir uns doch mal zusammen den Befehl anschauen Code:
_gridPos = mapGridPosition player Jetzt kommt die Master Frage, die ich auch schon im anderen thread gestellt habe. Wie bekomm ich den Wert OHNE "hint","hint silence" oder einen Sidechat zu benutzen ausgegeben? Die Methode die dieser befehl für mich eröffnet ist das Selbe wie in dem anderen Thread schon vorgeschlagen. Eintippen->Spiel starten-> Wert ablesen der eingeblendet wird-> Aufschreiben. Wie dumm ist das? ![]() In dem anderen Thread war die Frage, ob es nicht einfacher geht. Weil dieser Thread extrem ausgeschweift ist im Thema und eben NICHT das behandelt was ich will. Wenn es doch anders geht mit diesem Befehl, dann Bitte ich um aufklärung und entschuldigung. ![]()
__________________
Im Ingenieur steckt Genie, vergiss das nicht. |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|