13.07.2010, 13:01 | #1 (permalink) |
Registriert seit: 27.06.2009
Beiträge: 105
|
Script nur auf dem Server bzw. Client ausführen !
Hi Jungs,
ich brauche mal wieder eure Hilfe ! Es geht um die Sache Scripte nur auf dem Server bzw. nur auf dem Client (also auf allen Rechnern) auszuführen. Ich will es an einem Beispiel erklären ! Ich habe eine Mission mit zufällig ausgewählten Missionen wenn ich nun meine Mission starte dann hat jeder Spieler ein anderes Missionsziel, das hängt dann warscheinlich damit zusammen, dass jeder dieses Script ausführt und somit jeder eine andere Zufallsvariable hat ! Danach wird das Briefing ausgeführt in dem geprüft wird welche Mission aktiv ist Code:
if (zone1_m1_activated) then {...}; Hoffe ist nicht zu kompliziert Gruß Max |
13.07.2010, 13:05 | #2 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
So gehts:
Code:
If (isServer) then {...}; // wird nur auf dem Server ausgeführt Code:
If (!isServer) then {...}; // wird nur auf den Clients ausgeführt Code:
If (isDedicated) then {...}; // wird nur auf einem Dedicated Server ausgeführt Code:
If (isMultiplayer) then {...}; // wird nur im MP ausgeführt Code:
If (!isMultiplayer) then {...}; // wird nur im SP ausgeführt
__________________
|
13.07.2010, 13:15 | #3 (permalink) |
Registriert seit: 27.06.2009
Beiträge: 105
|
Hey Cyborg suuper schnell !
Danke funktioniert ! Noch 2 Fragen:- Wie ist das mit publicVariable muss ich den Befehl auf Server oder auf Client Seite ausführen oder ist das egal ? - Was ist der Unterschied zwischen isDedicated und isServer, wann nehm ich was ? Gruß Max |
13.07.2010, 13:59 | #4 (permalink) |
wer eine publicvariable ausführt ist eigentlich egal, es sollte i.d.r. aber der server sein.
unterschied: wenn du ein spiel selber im mp hostest werden bei... isServer - die befehle von dir als host (server) ausgeführt isDedicated - die befehle bei niemandem mehr ausgeführt wenn das spiel auf einem dedicated gehostet ist... werden sowohl als auch auf dem dedi-server ausgeführt
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
13.07.2010, 16:25 | #5 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Wenn du ingame ein Spiel hostest, dann bist du als Host Server und Client zugleich
Also ist in dem Fall isServer und !isServer true. Einen Dedicated Server kannst du über die arma2OAserver.exe starten Dort ist isServer und isDedicated true. publicVariable kannst du auf jedem Client und auf dem Server verwenden. Die Clients / der Server übertragen dann die Variable im Netzwerk auf alle anderen PCs. Und generell ein Tipp: Auf einem Dedicated Server existiert kein player Objekt!
__________________
|
19.07.2010, 13:49 | #8 (permalink) |
Registriert seit: 12.06.2006
Beiträge: 1.252
|
Das hat nichts miteinander zu tun.
Globale Variablen sind überfall verfügbar auf eine Instanz (Client X oder am Server). Lokale Variable sind nur innerhalb ihres Kontexts (Scopes). Am Besten lies ma bei Wikipedia/einem Buch zu Programmieren n Kapitel zu dem Thema.
__________________
PvPscene |
19.07.2010, 16:02 | #9 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
*deleted* Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. Geändert von Xeno (03.01.2014 um 09:20 Uhr). |
20.07.2010, 08:46 | #10 (permalink) |
Registriert seit: 08.12.2006
Ort: Dresden
Beiträge: 13
|
Das ist ja nett beschrieben. Danke
Mich würde nur mal interessieren, was wo ausgeführt werden muss? Also - Effekte werden lokal oder auf dem Server oder überall erstellt? Was ist mit Einheiten und Objekten? Erstelle ich die nur auf dem Server, auf jedem Client oder auch überall? Ich weiß, dass es den Befehl creatVehicleLocal gibt, aber wieso darf es nicht mit createVehicle auf allen erstellt werden? Gibt es da eine allgemeine Regel, wo was erstellt werden muss, soll, darf? Und - wann muss ich den Befehl publicVariable verwenden? Alles so verwirrend |
20.07.2010, 09:22 | #12 (permalink) |
Registriert seit: 08.12.2006
Ort: Dresden
Beiträge: 13
|
Ok, ich glaube das habe ich jetzt verstanden. Danke Xeno
Wenn ich aber jetzt eine GBU mit einem Random erstelle, würde die GBU ja auf jedem Client an anderer Stelle erzeugt werden. Dazu müsste ich doch den Randomwert erst auf dem Server errechnen lassen und dann an die Clients verteilen oder? Muss ich sonst noch irgendwas wissen, um eine funktionell einwandfreie MP-Mission zu erstellen? Wie ist das mit den Missionszielen im MP? Das hat sich doch auch alles verändert. |
20.07.2010, 13:01 | #13 (permalink) |
Registriert seit: 27.06.2009
Beiträge: 105
|
So ein blutiger Anfänger bin ich dann auch nicht hab ja schon einiges gemacht. Ich muss bloß jetzt gerade richtig mit dem isServer command arbeiten und ich hab so das Gefühl, dass der nur funktioniert, wenn innerhalb des isServer bereichs nur globale Variablen vorkommen ! PS: Was globale vars sind weiß ich Noch etwas: kommt z.B. wenn es auf dem Server ausgeführt wird beim Client an ? Gruß Max Geändert von N939 (20.07.2010 um 13:15 Uhr). |
21.07.2010, 16:56 | #17 (permalink) |
Registriert seit: 27.06.2009
Beiträge: 105
|
Also ich werd langsam verrückt !
Hier mein Code zum auswählen einer Zufälligen Mission: Aber der wählt egal wie ichs probier ger keine random Mission aus und wenn ich die Veriablen abfrage kommt nur "any" zurück ! Wahrscheinlich überseh ich bloß wieder was vom stundenlangen anstarren dieses kleinen Codeschnipsels Hoffe ihr seht da mehr ! PS: zone1_missions = array |
21.07.2010, 17:27 | #18 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Zeig mal wie auf dem Client die Missionen ausgewählt werden.
Könnte sein, dass zu diesem Zeitpunkt deine Variable select noch gar nicht zugewiesen ist. Das heißt, dass die Clients schneller sind als der Server. Probier mal das bei den Clients ins Skript zuschreiben: Code:
WaitUntil {!isNil "select"};
__________________
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Mando Missile script in Xenos Domi | nightbringer | Editing & Scripting | 2 | 29.11.2010 20:32 |
Arma2/OA - combined operations Server | Anemia | Multiplayer | 14 | 24.07.2010 15:12 |
Mods im dedicated Server Einbinden | Grütze | Multiplayer Community | 2 | 09.07.2010 10:08 |
Biete ArmA 2 / AO Server + TS3 | luemmel | Die Litfaßsäule | 2 | 03.07.2010 18:30 |
[WIN] Dedicated Server Probleme | Numrollen | Technische Fragen & Probleme | 7 | 02.07.2010 19:26 |