HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   MP Hilfe Lokalität ?? (https://hx3.de/editing-scripting-187/mp-hilfe-lokalitaet-23029/)

Kingderek 17.10.2013 20:38

MP Hilfe Lokalität ??
 
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 11: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 13: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 14:48

Schon richtig, wobei wenn die Variable ein Boolean ist brauchst du das "== true" nicht wirklich.


Würde also auch so gehen:
PHP-Code:

if (variablethen {
}; 


Oder dashier, um ein "false" abzufragen:
PHP-Code:

if (!variablethen {
}; 


Drunken Officer 18.10.2013 14:58

Ich nutze das hier mit
Code:

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.
Code:

waitUntil {mission_1_verloren || mission_1_geschafft};

Kingderek 19.10.2013 15: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:

Code:

_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...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.

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 120