Zum Problem:
Bei dem versuch ein Produckt per script verschiedenen Stationen hinzuzufügen ist mir aufgefallen das es ein Paar befehle gibt die zumindest mir fehlen.
die befehlszeilen kennt ja jeder aus den Tutorials:
Code: Select all
001 @ = wait 100 ms
002 $Station = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
003 if $Station -> exists
004 if not $Station -> trades with ware Spezialsoftware MK2
005 $Station -> add product to factory or dock: Spezialsoftware MK2
006 $Discard = $Station -> add 1 units of Spezialsoftware MK2
007 end
008 end
009 return null
allerdings wollte ich dieses Produckt ja nicht nur einem sondern Mehreren Stationen hinzufügen, nämlich noch 2 weiteren Split AD und den P.Anarchi Port.
man kann zwar nun mit Arrys und was weis ich noch alles ein schones Drumrum baun und bekommt dann auch was man will (zumindest denke ich das es geht) - aber nicht jeder hat ein Informatickstudium oder der gleichen hinter sich. und extra eins anfangen für ein Game ? - ich weis nicht.
So, nun sollte es so denkt der leie, moglich sein die Abfrage mehrfach aneinander zu hängen - in eine Kette mit einer art von verknüpfung z.b. so:
Code: Select all
001 @ = wait 100 ms
002 $Station = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
003 if $Station -> exists
004 if not $Station -> trades with ware Spezialsoftware MK2
005 $Station -> add product to factory or dock: Spezialsoftware MK2
006 $Discard = $Station -> add 1 units of Spezialsoftware MK2
007 Then (oder auch Then find - oder And)
008 $Station2 = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
009 if $Station2 -> exists
010 if not $Station2 -> trades with ware Spezialsoftware MK2
011 $Station2 -> add product to factory or dock: Spezialsoftware MK2
012 $Discard = $Station2 -> add 1 units of Spezialsoftware MK2
013 end
014 end
009 return null
Code: Select all
000 Stations = Station And Station2
001 @ = wait 100 ms
002 $Station = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
003 And (Then)
004 $Station2 = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
005 if $Stations -> exists
006 if not $Stations -> trades with ware Spezialsoftware MK2
007 $Stations -> add product to factory or dock: Spezialsoftware MK2
008 $Discard = $Stations -> add 1 units of Spezialsoftware MK2
009 end
010 end
011 return null
Nun Frage ich mich warum - ist es ein verbrechen eine befehlskette zu bauen?
(Die oben Angegebenen codes sind jetzt nur zur verdeutlichung des Problems und sind so natürlich nicht ganz fehlerfei - aber das Grungproblem sollte denke ich klar werden.)
was bei dem erstellen nun auffällt, ist das bei einer widerholten nutzung der befehle, diese zwar gespeichert aber beim ausführen gelöscht werden.
z.b. so:
Code: Select all
001 @ = wait 100 ms
002 $Station = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
003 if $Station -> exists
004 if not $Station -> trades with ware Spezialsoftware MK2
005 $Station -> add product to factory or dock: Spezialsoftware MK2
006 $Discard = $Station -> add 1 units of Spezialsoftware MK2
007 end
008 end
002 $Station = find station in galaxy: startsector=Black Hole Sun class or type=Split Equipment Dock race=Split flags=[Find.Multiple] refobj=null serial=null max.jumps=99
003 if $Station -> exists
004 if not $Station -> trades with ware Spezialsoftware MK2
005 $Station -> add product to factory or dock: Spezialsoftware MK2
006 $Discard = $Station -> add 1 units of Spezialsoftware MK2
007 end
008 end
009 return null
daher mal die ernsthafte Frage an Egosoft - muß es sein das man auf solche einfachen mittel verzichtet.
Fast alles im Scripteditor ist ohne tiefere Programmierkenntnisse nicht zu verwirklichen.
Es ist zwar schön das das einige sehr gut können - manche können das nicht und die Tutorials erklären einen solche Probleme nicht gerade.
so ist mir z.b. auch aufgefallen das manche Befehle sich nicht Auf jedes Objekt gennerell anwenden lassen - ein Sript das einem einen gezielten angriff auf feindschiffe bestimmter klassen ermöglicht funktioniert prima mit einem Diso, bei der Nova oder anderen schiffen mit türmen aber nicht.
und schon kann man wieder versuchen ne lösung und die zugehörigen befehle zu finden - da es auch hierzu keinerlei infos gibt welcher befehl für welche objekte überhaupt verwendbar sind, ist das ne suche nach der nadel im heuhaufen.
@ EGOSOFT nicht jeder kennt sich mit Proggramieren aus und kann somit den SE nicht ohne grundlegende infos halbwegs nachvollziehen. Ihr gebt keine Beispielscripte raus und keine Grundlegenden Infos - sprich Doku - die einem wenigstens halbwegs erklären würde was wo zu verwenden ist.
wenn man was wissen will, dann kann man zwar fragen, aber das ritual ist dann immer das selbe - script schicken, abwarten und dann bekommt man etwas zurück das zwar funktioniert - aber warum und wieso steht weiterhin in den Sternen.
Also tut mal den nicht Proggern nen gefallen und fügt grundlegende Befehle für das verknüpfen von befehlen hinzu - damit man wenigstens versuchen kann solche fallen zu umgehen, oder macht ne doku mit Beispielscripten damit man das ganze mal nachvollziehen kann (mit erklärungen warum man eine befehl so verwendet bzw. welchen befehl man da verwendet)
ich find es schade das leuten mit wenig kenntnissen nichts anderes übrig bleibt, als für jeden befehl und für jede Aktion, ein extra script zu schreiben nur um dann mit 100 - 10 Zeiligen scripts dann das zu erreichen, was man ansonsten in einem Script mit 20 oder 30 zeilen hätte umsetzen können.[/code]