HX3 Foren  

  HX3 Foren > Games > Operation Flashpoint > Editing

Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 15.06.2006, 23:49   #1 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Icon14 Realistisches Verhalten unter Beschuss

Ich habe zwei M2-Maschinengewehre an eine Einfahrt postiert und bin mit dem Verhalten der Schützen nicht zufrieden: Wenn der Player sich auf dem Bauch kriechend nähert und ein M2 erledigt, reagiert der Schütze des anderen M2s nicht. Erst wenn der Player aufsteht, "sieht" das andere M2 ihn. Ich habe in die INIT-Zeilen der M2s ein "this setBehaviour "Aware"; this setCombatMode "Yellow" eingegeben: keine Veränderung. Ich möchte, dass sich die M2s unter Beschuss drehen (den Horizont absuchen). Geht das?
Guipas ist offline   Mit Zitat antworten
Alt 15.06.2006, 23:55   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Registriert seit: 22.08.2005
Ort: ©PaderBurns™
Alter: 47
Beiträge: 2.142
SWAT eine Nachricht über ICQ schicken SWAT eine Nachricht über MSN schicken SWAT eine Nachricht über Skype™ schicken
Standard AW: Realistisches Verhalten unter Beschuss

wie ist denn das Verhalten, wenn du die INIT leer lässt?

Ansonsten probier es mal mit "this DoWatch name". Ich bin mir nicht ganz sicher, aber ich glaube, für name kann man auch south, west, usw. eingeben. Ist aber nur reine Vermutung meinerseits jetzt.
__________________
Dear god... make everybody die... Amen!
SWAT ist offline   Mit Zitat antworten
Alt 16.06.2006, 00:14   #3 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Zitat von SWAT

wie ist denn das Verhalten, wenn du die INIT leer lässt?

Ich hab mich falsch ausgedrückt: Ich habe sowohl INIT leer gelassen, als auch Verschiedenes ausprobiert: Ergebnis: INIT leer unterscheidet sich nicht von z.B. setBaviour "Combat" + setCombatMode "Red" (bei "Careless" passiert natürlich überhaupt nix, klar...).

Zitat von SWAT

Ansonsten probier es mal mit "this DoWatch name". Ich bin mir nicht ganz sicher, aber ich glaube, für name kann man auch south, west, usw. eingeben. Ist aber nur reine Vermutung meinerseits jetzt.

Gerade gemacht, klappt aber leider nicht. Die Richtungsangaben werden als Variable von DoWatch nicht akzepiert. Dem Player einen Variablen-Namen zu geben und die M2s so auf ihn auszurichten, verträgt sich leider nicht mit der Mission: ALLE Einheiten der Player-Seite sollen die M2s entsprechend beeinflussen.
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 00:31   #4 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Ich habe jetzt mal folgendes gemacht: dem Player einen Namen zugewiesen und die M2s mit doWatch drauf ausgerichtet. Das funktioniert zwar, aber ich kriege den Realismus nicht hin, den ich möchte: Player kriecht auf dem Bauch hin, erledigt ein M2, doch das andere M2 zielt nur auf Player und feuert erst dann, wenn Player noch weiter vorrückt. Das Unrealistische: 1.) Wenn Player den Schützen des übriggebliebenen M2s sehen kann, dann auch vice versa. 2.) Wenn mir als M2-Schütze der Kumpel weggeschossen wird, ballere ich ersteinmal grob in die Richtung, aus der die Schüsse kamen.
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 00:42   #5 (permalink)
500 Beiträge
 
Benutzerbild von Serclaes
 
Registriert seit: 01.02.2005
Beiträge: 701
Standard AW: Realistisches Verhalten unter Beschuss

Ich kann nichts garantieren aber mit dem Script müsste es gehen.

mgschütze1 heisst der schütze des ersten mgs (nicht dem mg den namen geben)
mgschütze2 heisst der schütze des zweiten mgs
player heist der spieler

#start
? not(alive mgschütze1): goto bla1
~0.1
? not(alive mgschütze2): goto bla2
~1
goto start
#bla1
mgschütze2 dowatch player
~0.1
goto exit
#bla2
mgschütze1 dowatch player
~0.1
goto exit
#exit
exit
__________________
virtuelle Luftlandebrigade 31
Serclaes ist offline   Mit Zitat antworten
Alt 16.06.2006, 01:05   #6 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Ich bin noch Anfänger im MissionEditing und muss da nachfragen: Das ist ein Script, ist das richtig? Muss ich mit "exec" dann irgendwo (Einheit, Auslöser, Wegpunkt) starten, richtig?

DoWatch Player-Name scheint im Ansatz doch das Richtige zu sein, denn dass alle anderen Einheiten der Player-Seite die M2s in derselben Weise beeinflussen, ist wohl übertriebener Realismus: Als Player krieg ich das im Gefecht ja gar nicht mit, denke ich mir.

Was mir noch fehlt: Ist es möglich, dass der übriggebliebene M2-Schütze dem Player ein paar Schüsse vor den Bug setzt, sobald der erste M2er hin ist? (Mit setPos getPos und versetztes unsichtbares Ziel vorm Player? Aber wie?)
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 03:22   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Registriert seit: 22.08.2005
Ort: ©PaderBurns™
Alter: 47
Beiträge: 2.142
SWAT eine Nachricht über ICQ schicken SWAT eine Nachricht über MSN schicken SWAT eine Nachricht über Skype™ schicken
Standard AW: Realistisches Verhalten unter Beschuss

Jap, das ist ein Script...

Ich erkläre dir kurz, was du machen musst, um es zu starten. Du gehst in den Editor und bastelst dir deine Mission soweit erstmal zurecht und speicherst das Game.

Mit z.B. Alt + Tab verlässt du das Spiel und gehst in deinem OFP-Ordner in User/Dein Name/Missions/Missionsname... dort findest du eine Datei namens Mission.sqm...
In diesem Ordner öffnest du eine Textdatei, kopierst oder schreibst dein Script dort rein und speicherst es z.B. MG.sqs ab (Name ist egal). Vorher natürlich von Txt.Datei auf alle Dateien umstellen, damit es nicht als MG.sqs.txt gespeichert wird.

Das Script selbst kannst du über Init-Zeile, Auslöser oder sogar ein anderes Script auslösen und zwar schreibst du this exec "MG.sqs". Mehr zu Scripten findest du, wenn du mal die Suchfunktion befragst.

Zitat:

Was mir noch fehlt: Ist es möglich, dass der übriggebliebene M2-Schütze dem Player ein paar Schüsse vor den Bug setzt, sobald der erste M2er hin ist? (Mit setPos getPos und versetztes unsichtbares Ziel vorm Player? Aber wie?)

Möglich ist das mit Sicherheit, hab es aber selbst noch nie ausprobiert... Als unsichtbares Ziel könnte man das Heli-Pad oder die invisible Targets nutzen. Letzteres findet sich wahrscheinlich auf www.mapfact.net

Mir würde da sicher auch ein Script zu einfallen, ist im Moment aber zu spät für mich, da noch groß nachzudenken
__________________
Dear god... make everybody die... Amen!
SWAT ist offline   Mit Zitat antworten
Alt 16.06.2006, 13:36   #8 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Vielen Dank, SWAT, für die Script-Erklärung, hab´s so gemacht. Vielen Dank auch an Serclaes für das Script, obschon...: Irgendwas stimmt da nicht (und ich spreche jetzt nicht von den Umlauten im Variablenname, die ich ersetzt habe im Name-Feld der Einheit und im Script). mgschuetze2 richtet sich immer sofort auf player aus, obwohl mgschuetze1 quicklebendig ist, während letzterer sich um keinen Millimeter bewegt, wenn mgschuetze2 erledigt wurde. Um auszuschließen, dass ich mit der internen Feind-Logik von OFP in Konflikt komme, habe ich player probehalber auf dieselbe Seite wie die MG-Schützen gesetzt und ein bisschen friendly fire gespuckt: das Ergebniss ist dasselbe. Sonderbar. Einen logischen Fehler kann ich in Serclaes´ Scipt nicht entdecken.
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 14:52   #9 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Registriert seit: 22.08.2005
Ort: ©PaderBurns™
Alter: 47
Beiträge: 2.142
SWAT eine Nachricht über ICQ schicken SWAT eine Nachricht über MSN schicken SWAT eine Nachricht über Skype™ schicken
Standard AW: Realistisches Verhalten unter Beschuss

Aber ich hab den logischen Fehler entdeckt... die Variablen nach goto müssen in "" stehen...

Es muss also heißen:

#start
? not(alive mgschütze1): goto "bla1"
~0.1
? not(alive mgschütze2): goto "bla2"
~1
goto "start"
#bla1
mgschütze2 dowatch player
~0.1
goto "exit"
#bla2
mgschütze1 dowatch player
~0.1
goto "exit"
#exit
exit


Das Script selbst kann man natürlich noch optimieren, z.B. ist das letzte goto "exit" gar nicht mehr nötig... aber an sich müsste das soweit passen
__________________
Dear god... make everybody die... Amen!
SWAT ist offline   Mit Zitat antworten
Alt 16.06.2006, 16:19   #10 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 26.08.2004
Ort: Dresden
Beiträge: 106
Standard AW: Realistisches Verhalten unter Beschuss

Wenn Du schon mit "unsichbaren" also InvTargets arbeitest, kannst Du Du dieses auch stehts 1m vorm Player positionieren und auf setcaptive true setzen. Mit Auslösern veränderst Du dann den Status des Targets von setcaptive true auf false wenn einer der beiden MG-Schützen stirbt. Ergo der andere ballert auf das InvTarget los. Wenns weit genug vom Player weg ist (halt ca. 1m) schauts aus als ob der MG-Schütze ihm "vor den Bug" schiesst.

Gruß

S.D.
Sudden Death ist offline   Mit Zitat antworten
Alt 16.06.2006, 16:59   #11 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Danke! Es klappt so!

Beim Experimentieren habe ich festgestellt, dass es wohl einen OFPinternen Feind-Entdeckungs-Schwellwert gibt, der überschritten sein muss, damit das Feuer eröffnet wird. So richtet sich zwar - dank Script - der überlebende M2-Schütze auf den player aus, feuert aber nicht, wenn player nicht "gut genug" sichtbar ist. Ich habe das Script probehalber mit doFire-Befehlen erweitert: bringt nichts. (Vorläufiges) Resumee: die OFP-KI ist so eingestellt, dass der Spieler einen Vorteil hat: Wenn er (liegend und nicht durch Büsche etc. versteckt) eine Schusslinie auf den KI-Gegner hat, so muss das auch vice versa gelten. Doch die KI hat dem Gegner wohl "schlechtere Augen" verpasst...
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 17:01   #12 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Oh, neue Antwort. Meine vorherige bezieht sich auf die Script-Korrektur von SWAT.
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 18:00   #13 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

In verschiedenen Befehlsreferenzen finde ich keinen invTarget-Befehl. Wie geht der denn? Beim Googeln habe ich festgestellt, dass es ein MAP_Editorupgrade mit unsichtbaren Zielen gibt. Ist das eine Möglichkeit? Wie nimmt man dann die permanente Kopplung des unsichtbaren Ziels an den player vor?

Vielen Dank im voraus!
Guipas ist offline   Mit Zitat antworten
Alt 16.06.2006, 18:55   #14 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 26.08.2004
Ort: Dresden
Beiträge: 106
Standard AW: Realistisches Verhalten unter Beschuss

Invisible Targets sind Editorobjekte entweder aus dem Mapfact-Editorupgrade oder dem InvTargets-Addon von Lester beides auf mapfact.net zu finden.

Das Koppeln erfolgt wiederum über ein Script:

#loop
_x = 1*sin(getdir player)
_y = 1*cos(getdir player)
_this setpos [(getpos player select 0)+_x,(getpos player select 1)+_y,0]
~1
goto "loop"

Du rufst es am besten über die init-Zeile des Editorobjektes auf:
this exec "positionierung.sqs"

Damit sollte das Ziel immer 1m vor dem Player sein, beachte bitte, dass es solange wie es nicht auf "setcaptive true" steht, permanent vom Gegner beschossen wird!

S.D.
Sudden Death ist offline   Mit Zitat antworten
Alt 17.06.2006, 15:17   #15 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Vielen Dank, ich werd´s ausprobieren.

Gruss, Guipas
Guipas ist offline   Mit Zitat antworten
Alt 19.06.2006, 01:50   #16 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Hallo S.D., ich habe dein Script noch nicht ausprobiert, denn ich wollte es erst mal verstehen; musste mir noch mal Sinus und Kosinus vergegenwärtigen, kritzelte ein wenig aufs Papier, bis mir dann das bekannte Licht aufging (wunderbar!). Meine Frage, bevor ich dein Script einsetze: mit "select" nimmst du ja Elemente aus einem Array (Positionskoordinaten). Nun lese ich im Unofficial OFP Command Ref. Manual von LustyPooh & Niosop, dass "Array indexes start at 1 not 0". Wenn es so ist, müsste es "select 1" und "select 2" heißen, um sich x- und y-Koordinate zu fischen. Was ist richtig?

Gruß, Guipas
Guipas ist offline   Mit Zitat antworten
Alt 19.06.2006, 10:07   #17 (permalink)
500 Beiträge
 
Benutzerbild von Serclaes
 
Registriert seit: 01.02.2005
Beiträge: 701
Standard AW: Realistisches Verhalten unter Beschuss

Das was S D gemacht hat ist einwandfrei. In dieser Zeile :

this setpos [(getpos player select 0)+_x,(getpos player select 1)+_y,0]


wird erst die Position an der x achse des spielers genommen (getpos player select 0) und dann wird die variable _x addiert. Das mit der y Achse ist dann Analog.

select 0, select 1 usw. sind "variable" variablen. Ich probier das mal anhand eines Beispiels zu erklären. In deinem Fall ist das ja so das du eine Invisible Target Addon vor dem Player platzieren willst. Aber da der Player ständig seine Position ändert musst du also den Player als Positionsreferenz nutzen. Deshalb das (getpos player select 0), andernfalls wäre das eine Zahl.

Was du auch machen kannst ist ein ziviles unsichtbares Ziel zu platzieren dann kannst du dir nämlich per "dofire" aussuchen wer darauf schiesst.
__________________
virtuelle Luftlandebrigade 31
Serclaes ist offline   Mit Zitat antworten
Alt 19.06.2006, 14:14   #18 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 26.08.2004
Ort: Dresden
Beiträge: 106
Standard AW: Realistisches Verhalten unter Beschuss

Zitat von Guipas

Nun lese ich im Unofficial OFP Command Ref. Manual von LustyPooh & Niosop, dass "Array indexes start at 1 not 0". Wenn es so ist, müsste es "select 1" und "select 2" heißen, um sich x- und y-Koordinate zu fischen. Was ist richtig?

Ich kenn zwar das Tutorial nicht, da es für mich nur die einzig wahre Bibel gibt und das ist die von Mr. Burns! Auch Lester´s Befehlsreferenz ist sehr gut!

Aber select 0 und 1 ist richtig! Sie auch die offizielle BIS Befehlsreferenz:
http://www.flashpoint1985.com/docs/c...ta/comref.html

Die abgefragte Positionsangabe ergibt einen array [x-Koordinate, y-Koordinate, Höhe über Grund], daher select 0 für x-pos und select 1 für y-pos!

Du kannst das ganze ja erstmal mit dem Heli-H-Objekt oder einem "Fass" ausprobieren damit Du siehst wo das Objekt positioniert wird. Sollte es nicht vor Dir sondern 90 Grad seitwärts sein, muss Du sin und cos tauschen. Ich komme selbst manchmal mit den Positionsangaben in OFP durcheinander.

Die "1" bei "1*cos(getdir player)" steht für den Abstand 1m. Du kannst also auch "5" für 5m testen etc.

WICHTIG! Wenn Du "_this" nutzt muss das Script unbedingt von dem Objekt aufgerufen werden welches im Verhältnis zum Player positioniert werden soll! Ansonsten durch den Einheitennamen ersetzen!

Gruß

S.D.
Sudden Death ist offline   Mit Zitat antworten
Alt 20.06.2006, 03:53   #19 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Zitat von Serclaes

select 0, select 1 usw. sind "variable" variablen. Ich probier das mal anhand eines Beispiels zu erklären. In deinem Fall ist das ja so das du eine Invisible Target Addon vor dem Player platzieren willst. Aber da der Player ständig seine Position ändert musst du also den Player als Positionsreferenz nutzen. Deshalb das (getpos player select 0), andernfalls wäre das eine Zahl.

Ja, so hatte ich es mir ja bereits zusammengereimt. Ich war nur unsicher, ob das erste Element eines Arrays mit 0 oder 1 angesprochen wird (also in unserem Fall die x-Koordinate). S.D. sagt klar: 1. Also bon. Dein "andernfalls wäre das eine Zahl" verstehe ich nicht. Was meinst du?

Gruß Guipas
Guipas ist offline   Mit Zitat antworten
Alt 20.06.2006, 04:00   #20 (permalink)
Newbie
 
Registriert seit: 17.03.2006
Beiträge: 36
Standard AW: Realistisches Verhalten unter Beschuss

Sorry, natürlich: S.D. sagt: 0. (Es ist zu spät, ich schalte ab, wie SWAT gestern). (Wenn ich´s richtig sehe, fehlt noch ein todmüder Smiley in der Sammlung...)
Guipas 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


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 117 118 119