20.05.2009, 13:05 | #1 (permalink) |
Skript läuft über Server nicht korrekt ab
Moin zusammen!
Kann mir jemand sagen, warum das folgende Skript (sqf) nicht richtig funktioniert? Es wir durch einen Action- Menü Eintrag gestartet. IM removeAction ID; player playmove "AinvPknlMstpSlayWrflDnon_medic"; sleep 6; hint "Die Minister werden gleich in den Hum1 gebeamt"; sleep 12; IM moveInCargo Hum1; PM moveInCargo Hum1; sleep 6; "2" ObjStatus "Done"; sleep 6; hint "Bringe die beiden in den Knast in der Base und warte davor, bis sie drin sind"; Das Skript wird zwar gestartet, aber die beiden Personen werden nicht in den „Hum1“ gebeamt, wenn ich das Spiel über einen Server starte. Im Editor klappt alles problemlos. Über den Server werden alle anderen Befehle abgearbeitet, nur das „moveInCargo“ nicht. Gruß Rettich |
|
20.05.2009, 13:49 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Vermutlich hat der Server über IM und PM nicht die Kontrolle. Wenn das z.B. Spieler sind oder der Gruppe eines Spielers angehören.
Infors darüber hier: Locality in Multiplayer - Bohemia Interactive Community |
20.05.2009, 14:08 | #3 (permalink) |
Ne, sie sind gruppenlos, aber genau das ist das Problem.
Nach einigem hin- und herprobieren habe ich herausgefunden, das die Soldaten die gebeamt werden sollen, in der Gruppe des Spielers sein müssen und dann klappt es auch nur mit dem Soldaten, der den Action- Menüeintrag hat. Also müssen beide einen Eintrag bekommen und einzeln gebeamt werden. z.B. so: s2 removeAction ID; player playmove "AinvPknlMstpSlayWrflDnon_medic"; sleep 6; hint "Pilot wird gleich in den Hum1 gebeamt"; sleep 2; [s2] join s1; sleep 2; s2 moveInCargo Hum1; Aber Danke Vienna! |
|
20.05.2009, 18:34 | #4 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Dann war es kein Server-, sondern ein Clientproblem. Jedenfalls war es ein Problem der "Lokalität". Der Client wollte KIs, über die der Server die Kontrolle hatte, steuern. Durch das Aufnehmen der KIs in die Gruppe des Clients hat der jetzt die Kontrolle über die KIs. Da kannst du ihnen aber auch dirket die Befehle zum Einsteigen geben.
Wenn du gar nicht willst, dass die KIs unter der Kontrolle des Clients sind, dann musst du den moveInCargo Befehl vom Server ausführen lassen. z.B. das Skript über eine publice Variable beim Server starten, oder über einen "addPublicVariableEventHandler". z.B. In die Init.sqs oder Init.sqf folgende Zeilen einschreiben. IM_PM_in_Hum1 = false; "IM_PM_in_Hum1" addPublicVariableEventHandler {IM moveInCargo Hum1;PM moveInCargo Hum1;IM_PM_in_Hum1 = false}; In dein auszulösendes Skript schreibst du dann die Zeilen: IM_PM_in_Hum1 = true; publicVariable "IM_PM_in_Hum1"; sleep 0.1; IM moveInCargo Hum1; PM moveInCargo Hum1; IM_PM_in_Hum1 = false; Dann werden die beiden Units in den Hum1 gesetzt, egal wer die Kontrolle über sie hat. Die drei letzten Zeilen sind notwendig, falls der Client, der das Skript startet, selbst die Kontrolle hätte. Dadurch, dass die Variable IM_PM_in_Hum1 gleich wieder zurückgesetzt wird, ist der Befehl zum Reinsetzen bliebig wiederholbar. |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Armed Assault läuft nicht flüssig | quick-mick | Technische Fragen & Probleme | 10 | 13.02.2009 13:29 |
Skript springt nicht zum Start?! | Hercules-HH | Editing | 5 | 24.10.2008 12:37 |
Spiel Läuft nicht!!! | Schackal | Technische Fragen & Probleme | 5 | 18.12.2006 15:42 |
OFP mit 2 Usern auf einen Server über eine DSL Leitung funktz. nicht | cheeky_79 | Hilfe | 1 | 26.02.2005 19:42 |