HX3 Foren  

  HX3 Foren > Games > Operation Flashpoint > Editing

Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 11.03.2003, 19:59   #1 (permalink)
Newbie
 
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
Standard

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
WAS passiert da?Wozu ist das gut?
__________________
[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> &amp; [color=green]Organisation</span>
TheLoner - [color=red]Programmierer Anwendungsentwicklung</span>
-bunkerkind- ist offline   Mit Zitat antworten
Alt 12.03.2003, 01:51   #2 (permalink)
Newbie
 
Registriert seit: 06.03.2003
Ort: Hannover
Beiträge: 26
Standard

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:
Zitat:

CODE**
?![local server) : goto exit

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
steht. Das dürfte ziemlich am Ende des Skriptes sein.
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> &amp; [color=green]Organisation</span>
TheLoner - [color=red]Programmierer Anwendungsentwicklung</span>
Coyote ist offline   Mit Zitat antworten
Alt 12.03.2003, 08:07   #3 (permalink)
Newbie
 
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
Standard

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
Script wird per Trigger ausgelöst:
Code:
[server] exec "einscript.sqs"
Die Soldaten die durch das Script erschaffen werden, werden einem Soldaten im Editor mit folgender INIT-Zeile zugewiesen:
Code:
Gruppe1=group; DeleteVehicle this
Diesem Soldaten weise ich im Editor dann auch die Wegpunkte/Verhaltensweisen zu

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> &amp; [color=green]Organisation</span>
TheLoner - [color=red]Programmierer Anwendungsentwicklung</span>
-bunkerkind- ist offline   Mit Zitat antworten
Alt 12.03.2003, 13:50   #4 (permalink)
Newbie
 
Registriert seit: 06.03.2003
Ort: Hannover
Beiträge: 26
Standard

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]
2. Setz einen Trigger, den du per Radio auslösen kannst (am besten mehrmals), durch den Trigger lässt du dir die Gruppe eines oder mehrerer deiner erzeugten Soldaten anzeigen, etwa so:
in On Activation:
Code:
ZeigMal = group Fritz; hint ZeigMal
bzw.
Code:
ZeigMal = group Fritz; hint format ["%1",ZeigMal]
aber das sollte auf dasselbe rauskommen.

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> &amp; [color=green]Organisation</span>
TheLoner - [color=red]Programmierer Anwendungsentwicklung</span>
Coyote ist offline   Mit Zitat antworten
Alt 13.03.2003, 13:34   #5 (permalink)
Newbie
 
Registriert seit: 09.03.2003
Ort: Hannover
Beiträge: 13
Standard

! 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> &amp; [color=green]Organisation</span>
TheLoner - [color=red]Programmierer Anwendungsentwicklung</span>
-bunkerkind- ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bestes Projekt im deutschsprachigen Raum Atomic Veteranen Stammtisch 59 20.05.2005 22:03


Kontakt - HX3.de - Archiv - Nach oben

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