PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scrpting - viele Fragen


Drunken Officer
28.09.2013, 18:28
Moinse.

Ich lasse in der Init mein Hausspawn anlaufen. Auf der Karte habe ich diverse Marker z.B."ma_haus_sani".
Momentan drehe ich die Häuser im script. Gibt es ein Möglichkeit eine Markerausrichtung abzufragen. GetMakerDir gibt es laut liste nicht und GetDir verlangt ein Objekt.
Das würde des später erleichtern, wenn man mal die Marker umplatziert.


//Hausspawn.sqf
haus_sani = createVehicle "wasweißich_F" (getMarkerPos "ma_haus_sani");
haus_sani setDir 123;


Und muß diese Script mit
if (!isDedicated) exitWith {};
beginnen? Da es doch vom Server ausgeführt werden muss? :ugly: Momentan funzt es, weil ich Host & spieler in einer Person bin.
... irgendwie will mir das nicht begreiflich werden....

Tajin
02.10.2013, 13:50
klar gibt es ein "getMarkerDir".... nur eben ohne "get"
https://community.bistudio.com/wiki/markerDir

Und wenn du das Script nicht ausschließlich nur auf dem Server laufen lässt, dann wirst du im Multiplayer so viele Häuserkopien haben, wie Spieler auf dem Server sind +1 für den Server selbst.
Also aufpassen bei sowas. ;)

Allerdings solltest du lieber diese Abfrage benutzen, dann funktioniert es auch wenn die mission lokal gehostet wird:
if (!isServer) exitWith {};

Drunken Officer
13.10.2013, 21:44
Moinsen.

Ich kann als Textnachricht player Chat oder [WEST"HQ"] auswerfen. Ich habe aber in einer Mission gesehen, dass da auch andere Namen auftauchen können.
Wie erreiche ist das?

Ich schliesse meine Mission bei einem Offizier ab. Dann soll unten als CommandChat auftauchen
Officer: "Good job guys. Your first mission is done" (als commandchat ausgabe)

Ist eine Singleplayer Mission, MP bekomme ich nicht hin. :ugly:

Drunken Officer
20.11.2013, 19:17
Ich habe einen Array definiert.
luncherscheibe = [g1,..,..g27]
Was schonmal nicht funktionierte war

luncherscheibe =[[g1,g2,g3],[g4,g5,g6],[...],[..]];


Per floor i.V.. Random wird eine zufällige Variable aus dem Arry angesprochen.

Ich benötige aber für den Granateluncher, dass immer ein 3er Pärchen aufpoppt und nicht einzelne Scheiben. Einzelne bekomme ich hin.

Ich habe mal gelesen, dass die Geschichte mit Array im Array funktioniert und mit select 0 ... in einer von diesen innnenliegenden Array angesprochen wird. Kann mir da einer weiterhelfen.

Buliwyf
20.11.2013, 19:31
Launcher.. es schreibt sich launcher! ;)

Und das mit dem Array im Array ist im Grund recht logisch... um zB an g6 aus Deinem Beispiel zu kommen lautet es:

((launcherscheibe select 1) select 2)

;)

Drunken Officer
21.11.2013, 18:49
Ich will einen Wert aus der Stringtabel nehmen
titleText [localize "STR_nehmen","plain",1];
Das funzt aber net mehr.

Laut BIS sollte es dies aber tun. Ich benutzte eine stringtable.csv, genau wie bei A2.
Funktionieren *.csv nicht mehr bei A3?

JanIs
22.11.2013, 00:01
Doch und wie ich finde sogar besser als die xml.
Warum, weil man in der csv wunderbar auch farbigen Text verbauen kann was ich mit der xml nicht geschafft habe.

Zu deinem Problem:
Die TitleText-Zeile ist vollkommen richtig.
Endweder du hast in der stringtable.csv einen Fehler drin, eine falsche Variable verwendet oder du musst die Mission aufgrund von Änderungen in der csv einfach nochmal reinladen.

Dann müsste es laufen. Ich kann das mit Bestimmtheit sagen, da ich ausschließich mit stringtable.csv's werkle.

Drunken Officer
23.11.2013, 17:17
showCinemaBorder true; / false

Das funzt bei mir nur, wenn ich im Kameramodus bin. Ist das nur dafür gedacht, oder kann ich das auch im Spiel einblenden?

Ich will das ähnlich dem Intro von BIS machen. Eine Puppel laufen lassen, showCinemaBorder und dann die Kontrolle auf den Spieler übertragen.
Bis auf diesen Kinorahmen bekomme ich es hin.

JanIs
24.11.2013, 09:29
Soweit ich weiß nur für den Kameramodus.
Andernfalls müsstest du wohl extra eine Klasse dafür machen um sie für eine Zeit lang sozusagen künstlich zu erzeugen ...

Drunken Officer
02.12.2013, 20:27
Wie kann ich abfragen ob der Spieler "DemoCharge_Remote_Mag" im Inventar hat?

Der erste Task ist "get the satchels", damit später die Mission erfüllt werden kann.
Mit hasWeapon klappt das nicht, das die satchels MAgazine sind.

Lösung gefunden:
"DemoCharge_Remote_Mag" in magazines player


Ich hatte zum Anfang "DemoCharge_Remote_Mag" in player magazines -> und das funzte net...

Drunken Officer
05.01.2014, 11:18
Hallo.

Ich lade für eine SP Mission via Script für alle Westeinheiten eine neue uniform. Ich habe schlicht weg eine DeutschlandFlagge darauf gemalt.

Im Editor funktioniert das wunderbar. Speichere ich es als SP Mission und starte das Szenario , dann wird US uniform geladen.

Duke49th
04.03.2014, 20:48
Ich schliesse mich mal an.

Wieso funzt so was einfaches wie der Sidechat nimmer?

Oberkommando=[West,"HQ"]; Oberkommando SideChat "Blaahh blubb mit Umlauten äöü.";

Will nicht im Auslöser bei Aktivierung. Warum?

Auslöser funzt. Hakt brav die Aufgabe ab und aktiviert die nächste.

Nur der Funkspruch kommt nicht. Ist ne MP Missi.

So ähnlich stehts doch sogar in den scripting commands als Beispiel. Abgesehen davon das keine Umlaute enthalten sind und PAPPABEAR eben in Großbuchstaben ist. Das dürfte/sollte aber doch nicht das Problem sein, oder doch?

Drunken Officer
15.03.2014, 19:17
Moinsen.

Wie kann ich mir einen Triggernamen als String ausgeben lassen? Ich lasse in diesem Trigger in Spawnscript mit

egal= [thistrigger] spawn
{
_trg = _this select 0;
....
hint format ["Feindliche Einheiten sind in %1 eingefallen!", _trgname];
... };


Ich habe es jetzt mit missionnamespace, str usw probiert. Entweder es kommt <null> oder <noshape> anstelle des Triggernamens

Vienna
17.03.2014, 08:48
Das wird nur gehen, wenn du nicht nur die Liste des Triggers verwendest, sondern auch den Trigger für das Auslösen des Skripts und dabei einen Text übergibst.

z.B.
Triggername: Trigger1
Aktivierung: OPFOR
Bedingung: this
Bei Akt.: temp = ["Stadtname",Trigger1] execVM "Textausgabe.sqf"

Hier wird z.B. der Stadtname im Bereich des Triggers und die Trigger-ID, mit welcher dann mit list das Trigger-Array im Skript verwendet werden kann, dem Skript übergeben.

Drunken Officer
28.03.2014, 20:46
Moinsen.

Ich stehe mal wieder vor einem Problem. Ich schraube an meinem Hubi-Evac Script weiter.
Im SP Modus alles ganz easy.

Allerdings im MP etwas tricky. Alle Spieler haben den Aufruf über CfgCommunicationMenu drin. So kann jeder Spieler sich mit seinem Trupp ausfliegen lassen.
Im SP kann ich den Heli wunderbar zum "Player" fliegen lassen. Das klappt so nun im MP nicht.

Wie kann ich auslesen, wer das Script aufgerufen hat? Es ist kein AddAction, wo der "Caller" eine select 2 ist.

Alternativ müßte ich xyz Cfg Einträge mit unterschiedlicher ID und den jeweiligen Editornamen übergeben. Wobei das Script dann nimmer so flexibel ist.

Vienna
28.03.2014, 21:22
Das Skript überträgt beim Aufruf eine globale Variable public an die anderen Spieler. Die Variable identifiziert den aufrufenden Spieler und sperrt das Skript bei den anderen Spielern.

Drunken Officer
28.03.2014, 22:44
Jupp danke.

Ich muss dir das mal per PM schicken. Im SP haut es hin und im MP überrennt er es.
Außer ich (=HOST) bin der Spieler. Dann klappt es wieder...

Bah, dass ist so ätzend mit der Lokalität. Dann doch wieder SP Misisons :(