07.05.2015, 10:46 | #1 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Immer EIN Spieler hat Probleme mit dem Inventar
Hallo zusammen
Ich bin nicht sicher, ob ich diesen Fred hier aufmachen soll, oder unter der Rubrik "Multiplayer", da ich noch nicht sicher bin, ob der Fehler in meinen Missionen liegt, oder generell in Arma3. Das Problem: Seit dem DLC Marksman haben wir in unserm Mini-Clan ein Problem mit dem Inventar bei gehosteten Coops (Vanilla / ohne Mods / Version 1.44): Immer EIN Client (es scheint zufällig einer 'ausgewählt' zu werden, und den Host trifft's nie!) kann bestimmte Gegenstände nicht aus einem Behältnis nehmen. Das Probelm beschränkt sich nicht auf DLC-Gegenstände, sondern betrifft alle. Und es betrifft nicht nur die Missionen, die ich seit dem DLC Marksman gebaut habe, sondern auch meine alten Missionen. Der Client hat das Problem nicht mit allen Gegenständen in der Kiste. So kann es z.B. vorkommen, dass er eine Waffe aus der Kiste nehmen kann, die dazugehörige Munition aber nicht (sehen kann er sie aber). Wenn er versucht die Mun. in sein Inventar zu ziehen, dann 'klebt' sie zwar am Mauscursor, aber ablegen in seinem Inventar klappt nicht. Die Mun. spickt wieder zurück in die Kiste... Damit dieser Spieler zu seiner Munition kommt, muss ein anderer Client (oder der Host) die Mun. aus der Kiste nehmen und auf den Boden legen. Dann kann der fehlerbehaftete Client sie nehmen. Die Kisten werden übrigens auf herkömmliche Weise via Init-Zeile gefüllt: Code:
this allowDamage false; clearItemCargoGlobal this; clearWeaponCargoGlobal this; clearMagazineCargoGlobal this; clearBackpackCargoGlobal this; this addMagazineCargoGlobal ["7Rnd_408_Mag",20]; this addWeaponCargoGlobal ["srifle_LRR_F",2]; Weiss jemand hier Rat? Im Anhang eine Beispielmission, wenn's hilft. Vielen Dank. Geändert von Wolkenbeisser (07.05.2015 um 22:52 Uhr). Grund: Anhang hinzugefügt, Schreibfehler korrigiert |
07.05.2015, 11:43 | #3 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 57
Beiträge: 3.013
|
Das schafft BI seid längeren ... das ist ein weiteres Problem auf meiner Liste warum ich aufgehört habe.
Routinen funktionieren perfekt bis zum Patch x, dann gibt es unter bestimmten teilweise abstrousen Umständen Probleme mit dem einen und/oder anderen Teil. Mal ist es der Welcher als letztes gejoint hat, mal ein Anderer ... Ich vermute es hängt mit Prioritäten im Netzcode zusammen das da Dinge u.U. ein Mörderdelay haben, vielleicht in Verbindung mit der UID ??? Mein Endresultat nach Einfügen von Bestückungswartezeiten (was dann auch nur n Patches hielt) war eine komplette Überprüfung des zugeteilten Inventars! In der Praxis sieht das dann ungefähr so aus: 1 Inventar leermachen 2 Waffen, Klamotten und Magazine geben 3 nach Wartezeit prüfen ob Waffen, Klamotten und Magazine korrekt vorhanden, ansonsten 2 wiederholen 4 Komponenten der Waffen etc. zuteilen 5 nach Wartezeit prüfen ob Komponenten der Waffen etc. korrekt vorhanden, ansonsten 4 wiederholen Dann funktionierte es natürlich zuverlässig ... ich hab allerdings nie geprüft was für Maxzeiten es gedauert hat bis alles korrekt ausgeführt wurde. So oder so ist es kein vertretbarer Zustand, wenn ich etwas hinzufüge, dann hat es da zu sein solange da nichts überfüllt wird !
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 |
07.05.2015, 11:52 | #4 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Mach mal zwischen
Code:
this allowDamage false; Code:
clearItemCargoGlobal this; Code:
if (!isServer) exitWith{}; Was passiert dann? Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. |
07.05.2015, 14:25 | #5 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Ich könnte das probieren, aber wenn ich damit Erfolg hätte... oje, dann müsste ich sämtliche Missionen anpassen.
Ob ich das wirklich will? Denn eigentlich ist ja irgend ein Client der Letzte, der den Code im Auslöser ausführt (global!). Und dieser Letzte leert und füllt ja dann einfach die bereits befüllten Kisten. Das sollte m.E. auf dasselbe herauskommen (ok es ist weniger 'schlank'), als wenn es nur der Server macht. Im Gegenteil es fällt sogar eher unter die Kategorie "doppelt hält besser", frei nach dem Motto "lieber die Kiste 4 x füllen als keinmal". Viiiiiiel schöner wäre ein BIS-Mechanismus, der 'Gleichstand' zwischen allen Teilnehmern sicherstellen würde. Naja, beim nächsten Test kann ich es ja mal versuchen... Geändert von Wolkenbeisser (07.05.2015 um 14:28 Uhr). Grund: Schreibfehler |
07.05.2015, 23:04 | #8 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Nur ganz schnellen Tipp... Inits im Editor werden überall ausgeführt. Also auf allen Clients, auch auf JIP Clients und auf einem dedizierten Server.
Da sind also xxxGlobal Kommandos mehr als redundant. Stell dir mal vor da JIPed ein neuer Spieler rein... der führt alle xxxGlobal Inventory Befehle der Init Zeilen wieder aus, als Beispiel. Da ist Durcheinander vorprogrammiert. Also um die xxxGlobal Befehle ein Code:
if (isServer) then {xxxGlobal}; Ansonsten auch andere MP Fehler in der Mission. Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. Geändert von Xeno (07.05.2015 um 23:09 Uhr). |
08.05.2015, 03:14 | #9 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Wolkenbeisser, das mit der if (isServer)-Geschichte, hatte ich dir doch letzte Woche bereits erklärt
__________________
Bewegende Momente bei ArmA 3 |
08.05.2015, 07:25 | #10 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Ich weiss. Hatte bis jetzt bloss keine Lust alle Missionen umzubauen. Das grosse Problem ist, dass man im Internet bei vielen Tutorials keinen Hinweis findet, ob sie MP-tauglich sind oder nicht. Also habe ich vor Jahren (damals noch Arma1) einfach mal angefangen zu bauen und einfach gehofft, dass es klappt. Ich wollte ja nur für meine Kumpels im Editor ein paar Missionen bauen. NIE hätte ich gedacht, dass ich vorher eine IT-Ausbildung dafür machen muss. Naja, das JIP-Problem haben wir in der Regel nicht. Unser Mini-Clan ist vollständig versammelt, bevor wir die Mission starten. Trotzdem hätte ich es natürlich gerne lieber von Anfang an richtig gemacht... @Xeno: Meine Missionen funktionieren - abgesehen von dem Inventarbug - eigentlich sehr gut, wenn ich sie mit meinen Kumpels spiele. Was für Fehler meinst Du denn? Ich würde sie gerne in zukünftigen Missionen vermeiden. |
08.05.2015, 14:00 | #11 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
KillzoneKid hat es in seinem Block gut erklärt. Ich bin auch kei IT'ler aber habe es mittlerweile "geschnackelt".
Ist zwas im Vergleich zu anderen eher Grobschnitt was ich baue, aber die Missionen laufen und man wird seine Munition los
__________________
Bewegende Momente bei ArmA 3 |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Spieler per script fixieren. | Haloman | Editing & Scripting | 2 | 09.03.2015 23:58 |
Nehmbares Objekt an Spieler heften und für andere Spieler nehmbar machen | Grollig | Editing & Scripting | 13 | 26.09.2014 17:55 |
Der Server Arma 3 Altis Life Wolfs Squad sucht spieler | suppendulli | Rollenspiel & Zombie Ecke | 0 | 13.05.2014 14:21 |
Verschiedene Probleme | Togo | Editing & Scripting | 13 | 27.04.2013 10:53 |
Spieler (Zivilist) wird manchmal (!?) aus Auto gekickt | Wolkenbeisser | Editing & Scripting | 8 | 06.09.2011 07:19 |