PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MP Hilfe Lokalität ??


Kingderek
17.10.2013, 19:38
Hallo an Alle...


Versuche mich seit kurzem am Multiplayer Editing, und habe so meine Probleme mit der Lokalität. Das Thema ist sicher schon Tausendmal behandelt worden habe mich auch schon durch einige Themen von Xeno, Moerderhoschi und co gelesen aber schnalle das einfach nicht.


Zum Problem, ich wollte im Verlauf einer Mission mehrere Ziele per Script erstellen so ähnlich wie in Xenos Domi. Per Script erstelle ich also Feindliche Einheiten, Marker sowie Task, Gebäude die Zerstört werden müssen und Trigger die das Geschehen überwachen sollen. Das Script hatte ich über die Init Gestartet was auf dem Server gleich mal zur Doppelausführung führte. Als ich dann in der Init if (isServer) then {[]exec „scripts\ziel1.sqs“}; zur Ausführung schrieb wahr das Problem zwar behoben aber damit kamen die anderen... z.B. das der Task nicht dem Spieler zugewiesen wird sondern dem Server. Denke ich mal. Habe dann versucht im Script keinen Task zu definieren sondern eine Variable den wert 1 zu vergeben die public zu machen mit publicVariable“variable“ dann eine update.sqf aufzurufen und in dieser dann mit if (!isNil "Variable") then {task1 = player createSimpleTask usw. den Task an den Spieler zu übergeben.... Lokal funzt das Prima auf dem DediServer nicht. Kann mir vielleicht jemand Verständlich erklären wie ich allgemein diese JIP Geschichte im MP in den Griff bekomme. Ich habe auch hint befehle mit playsound befehlen im Script diese werden bei mir Lokal abgespielt, wenn ich sie dann aber auf dem Dedi laufen habe höre ich den Sound nicht mehr, ich denke mal da das Script ja dann vom Server ausgeführt wird. Aber wie kann ich das Script dann auf den Clients aufrufen?


Danke und Grüße....

Tajin
18.10.2013, 10:04
Ich find es am einfachsten wenn man alle Missionsrelevanten Scripte nur serverseitig laufen lässt und von dort aus den Spielern nur die "Ergebnisse" sendet. (guck dir mal BIS_fnc_MP an)


https://community.bistudio.com/wiki/BIS_fnc_MP

Kingderek
18.10.2013, 12:50
Ok, Danke mal, wenn ich das jetzt Richtig verstanden habe Rufe ich mit diesem Befehl meine update.sqf auf den Client´s auf ?? etwa so..
[[[], "update.sqf"], "BIS_fnc_execVM", true, true] spawn BIS_fnc_MP;
werd ich gleich mal Testen... Noch was.. Ich kann doch mit if (variable==true) einen Variablen wert abfragen oder ?? den die if (isNill) frägt ja nur ab ob die Variable existiert, aber nicht ihren wert. Ist das so Richtig? Nochmals Danke für den Tip..

Edit: Es Funktioniert juhuuu und ist so Einfach wenn man weis wie... Danke...

Tajin
18.10.2013, 13:48
Schon richtig, wobei wenn die Variable ein Boolean ist brauchst du das "== true" nicht wirklich.


Würde also auch so gehen:
if (variable) then {
};



Oder dashier, um ein "false" abzufragen:
if (!variable) then {
};

Drunken Officer
18.10.2013, 13:58
Ich nutze das hier mit
if (isNil "mission_1_verloren") then {mission_1_verloren = false}
damit lege ich den Wert auf False. Irgndwer hatte mal irgendwo geschrieben, dass es nicht verkehrt ist, dies vorher so zu definieren,

Später im Script taucht dann auf z.B.
waitUntil {mission_1_verloren || mission_1_geschafft};

Kingderek
19.10.2013, 14:48
Jo Danke nochmal funzt einwandfrei...

Habe nur ein Neues Problem. Ich erstelle per Script was auf dem Server Läuft einen Trigger der ein Gebäude überwachen soll und bei Aktivierung einer Variablen einen Wert zuweisen und public machen soll. Der Trigger Funktioniert aber nicht, denek ich mal. Den Trigger erstelle ich so:

_trt = createTrigger ["EmptyDetector",[1527.2,5070.56,5.5]];
_trt setTriggerArea [200,200,0,false];
_trt setTriggerTimeout [2,2,2,False];
_trt setTriggerType "none";
_trt setTriggerActivation ["none","PRESENT",false];
_trt setTriggerStatements ["not alive rt1","rt1zustand = 1;publicVariable 'rt1zustand';[[[],'scripts\update.sqf'],'BIS_fnc_execVM',true,true] spawn BIS_fnc_MP;",""];
in einer SP Mission hat das so Funktioniert.. MP aber nicht ???
Hab bei TriggerActivation auch schon ANY versucht geht au net.. Nerv...