|
Editing The world is a Script - write it! |
|
Themen-Optionen | Ansicht |
11.03.2003, 19:59 | #1 (permalink) |
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
|
Folgende Zeile eines Auslösers:
Code:
[server, "auftrag"] exec "einscript.sqs" server ist ein Logikpunkt im Editor "auftrag" ist ein string der im Script durch eine WENN DANN Abfrage läuft "einscript.sqs" ist das aufgerufene script soweit komm ich noch mit WARUM aber wird der Logikpunkt server übergeben? Die einzige Zeile in der :server: vorkommt heisst, Code:
?![local server) : goto exit
__________________
[color=black]<u>Dein HX3-Team</u></span> Lima - [color=purple]Designer Webdesign</span> anders^on - [color=purple]Designer Webdesign</span> xezon - [color=blue]Administrator Foren</span> AtomicHX3 - [color=red]Programmierer Webdevelopment</span> & [color=green]Organisation</span> TheLoner - [color=red]Programmierer Anwendungsentwicklung</span> |
12.03.2003, 01:51 | #2 (permalink) |
Registriert seit: 06.03.2003
Ort: Hannover
Beiträge: 26
|
Wenn man eine GameLogic auf die Map setzt, und sie im Multiplayer spielt, hat das folgenden Effekt:
Die GameLogic ist nur auf dem Server "local", d.h.: ?!(local NameGameLogic): ... kann nur auf dem client "true" ergeben. Alles, was hinter dem Doppelpunkt in dieser Zeile steht wird also NUR auf dem Client ausgeführt. Auf einem Server würde die Abfrage "false" ergeben, da die Gamelogic dort immer "local" ist, die Zeile wird also nur bis zum Doppelpunkt gelesen, danach gehts auf dem Server in die nächste Zeile. Dazu ist es aber NICHT nötig, den Namen der GameLogic an das Skript zu übergeben, wenn also in dem Skript nicht irgendwo am Anfang "_variablenname = this select 0" steht, wird die gameLogic zwar übergeben aber im Skript nicht weiter verwendet. Damit ist es unnötig und ["auftrag"] exec "einscript.sqs" reicht aus. Tut aber nicht weh, wenns drinsteht. Vielleicht postest du mal das ganz Skript hier rein? Sinn und Zweck, ein Skript nur auf dem Server ablaufen zu lassen ist folgender: Wichtige Dinge wie zum Beispiel den Punktestand sollte man NUR auf dem Server mitrechnen lassen, dann kann es keine Unstimmigkeiten zwischen Server und Client geben. Merke: Der Server hat immer Recht Man kann ein Skript auch nur auf den clients ablaufen lassen, wenn man die Abfrage ?(local player):... benutzt. "Player" ist nämlich immer nur auf dem client online. Achtung: Bei einem dedicated Server gebe ich dafür Brief und Siegel, bei einem Player, der selbst hostet kann das auch anders sein. Cheers,.. ...Coyote Zusatz: Mir fällt grade auf, daß das vollkommener Qutasch ist, was da steht. Erstmal sind die klammern falsch. Wenn, dann sind hier 2 Runde Klammern angebracht. Die Goto Anweisung macht folgendes: Wenn die Abfrage davor "true" ergibt, soll das Skript an einer bestimmten Stelle weitergelesen werden. Hier ist das die Stelle, an der der Anchor Code:
#exit ABER: In der Goto Anweisung muss das exit dann in Anführungszeichen stehen, wie ein String -> "exit" Richtig muss es also heissen: Code:
?!(local server) : goto "exit" ... ... ... #exit
__________________
[color=black]<u>Dein HX3-Team</u></span> Lima - [color=purple]Designer Webdesign</span> anders^on - [color=purple]Designer Webdesign</span> xezon - [color=blue]Administrator Foren</span> AtomicHX3 - [color=red]Programmierer Webdevelopment</span> & [color=green]Organisation</span> TheLoner - [color=red]Programmierer Anwendungsentwicklung</span> |
12.03.2003, 08:07 | #3 (permalink) |
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
|
Hi!
Ja stimmt, hab da was mit den Klammern und dem Exit verdummbeutelt. Es geht um folgendes, mit einem Script erstelle ich ein paar gegnerische Soldaten, diese sollen dann bestimmte Wegpunkte ablaufen. Das geschieht folgendermasen: SCRIPT: Code:
?!(local server) : exit "SoldierEB"createunit[Logikpunkt1,Gruppe1] . . exit Code:
[server] exec "einscript.sqs" Code:
Gruppe1=group; DeleteVehicle this Lokgikpunkt1, wird im Editor gesetzt. Dann setze ich noch einen Logikpunkt genannt: server So, im SP funktioniert das alles (ohne server) ohne probleme so oft wie ich will. Im MP auf dem Server funktioniert die Mission einmal, danach bewegen sich die Soldaten nicht mehr zu den Wegpunkten... WARUM NUR? Verbleiben da irgendwelche "Missionsreste" im Speicher des Servers oder auf den Clients?
__________________
[color=black]<u>Dein HX3-Team</u></span> Lima - [color=purple]Designer Webdesign</span> anders^on - [color=purple]Designer Webdesign</span> xezon - [color=blue]Administrator Foren</span> AtomicHX3 - [color=red]Programmierer Webdevelopment</span> & [color=green]Organisation</span> TheLoner - [color=red]Programmierer Anwendungsentwicklung</span> |
12.03.2003, 13:50 | #4 (permalink) |
Registriert seit: 06.03.2003
Ort: Hannover
Beiträge: 26
|
Scheint, als ob deine Soldaten nicht immer die Gruppe1 annehmen.
Ich bin mir nicht sicher, aber wenn der Soldat aus dem Editor gelöscht wird BEVOR die anderen Soldaten per Script erstellt werden, vielleicht wird dann auch seine Gruppe "gelöscht". Dann reagieren die Jungs natürlich auch nicht auf die Waypoints. Ich würde mal folgendes probieren: 1. gib den Soldaten, die du erzeugst Namen, z.B. Code:
Fritz = "SoldierEB"createunit[Logikpunkt1,Gruppe1] in On Activation: Code:
ZeigMal = group Fritz; hint ZeigMal Code:
ZeigMal = group Fritz; hint format ["%1",ZeigMal] Wenn deine Soldaten erzeugt sind, löste den Trigger aus und guckst nach, ob sie die richtige Gruppe haben. Dann weisste schonmal etwas mehr: Alternativ könntest du auch deine Soldaten per script steuern: Marker dort erstellen, wo du sie hinhaben willst, und sie per "domove" hinlatschen lassen, evtl. setbehaviour, setcombatmode, etc. Dann immer einen Trigger an jeden Marker, der erkennt, wenn die Soldaten angekommen sind und das Skript mit einer @Abfrage weiterlaufen lassen. Etwa so: Im Trigger: On Activation: WayPoint1Reached = true und im Script:[code]@WayPoint1Reached : Fritz domove Getpos "MarkerAnWaypoint2" Nicht schön, und viel zu skripten, ist aber machbar. Cheers, Coyote
__________________
[color=black]<u>Dein HX3-Team</u></span> Lima - [color=purple]Designer Webdesign</span> anders^on - [color=purple]Designer Webdesign</span> xezon - [color=blue]Administrator Foren</span> AtomicHX3 - [color=red]Programmierer Webdevelopment</span> & [color=green]Organisation</span> TheLoner - [color=red]Programmierer Anwendungsentwicklung</span> |
13.03.2003, 13:34 | #5 (permalink) |
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
|
! DANKE !
Auf meiner Suche bin ich auf folgende page gestossen, die ich den andreren Suchern B) nicht vorenthalten möchte Dadddiddl/Crosseyed ...jetzt hab ich schon das nächste Problem
__________________
[color=black]<u>Dein HX3-Team</u></span> Lima - [color=purple]Designer Webdesign</span> anders^on - [color=purple]Designer Webdesign</span> xezon - [color=blue]Administrator Foren</span> AtomicHX3 - [color=red]Programmierer Webdevelopment</span> & [color=green]Organisation</span> TheLoner - [color=red]Programmierer Anwendungsentwicklung</span> |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Bestes Projekt im deutschsprachigen Raum | Atomic | Veteranen Stammtisch | 59 | 20.05.2005 22:03 |