Hi,
sollte es die folgende Option schon geben, wäre es nett mir diese als Antwort mit einem kleinen Codebeispiel (siehe unten) zukommen zu lassen.
Ansonsten:
Man sollte die Möglichkeit einbauen ein eigenes Subraumportalscript zu schreiben. Damit kann man beispielsweise das Standardportal (welches ohne Zweifel seine Funktion sehr gut erfüllt) kreativ erweitern erweitern und eine eigene RP-Note mit einbringen oder ein Logbuch einführen, um zu gucken welcher Pirat wann durch seine Händlerportale fliegt (Logbuchmeldungen sind so, wie Einflugmeldungen aufgebaut, oder?). Man kann zwar ein eigenes Portal installieren, aber die wichtigste Funktion fehlt: Schiffe über dieses versenden. Aus gutem Grund, zu leicht könnte man einfach Schiffe einsaugen (fände ich zwar auch nicht schlecht, aber wollen wir beim Thema bleiben). Es ist für erfahrene Programmierer, wie STNE sie hat eine kleine Codeänderung zu erzeugen, sodass folgender Scripting-Code funktioniert:
Code:
Var PortalGeneratorID As Integer = 12345; //Item-ID des Portal-Generators
Var TransponderID As Integer = 12345; //Item-ID des Transponders des Zielportals
Var FleetID As Integer = 0; //Welche Flotte soll versendet werden? 0 für einzelnes Schiff
Var objects As New CSortedStringObjectList();
objects.Add("Target", TransponderID);
objects.Add("FleetID", FleetID);
Var retcode As Boolean = MyShip.InvokeItem(PortalGeneratorID, "SendGuestShip", objects);
So wird das "GuestShip" zur anderen Seite des Portals gesendet. "retcode" gibt beispielsweise an ob der Sprung geklappt hat.
Wenn jetzt Bedenken geäußert werden man könnte je theoretisch ein ahnungsloses kleines unschuldiges Schifflein, welches kurz in das Portal spähen will, zu einer hämisch grinsenden bösen Feindflotte senden, wie wäre es dann hiermit:
Code:
Var PortalGeneratorID As Integer = 12345; //Item-ID des Portal-Generators
Var TransponderID As Integer = 12345; //Item-ID des Transponders des Zielportals
Var FleetID As Integer = 0; //Welche Flotte soll versendet werden? 0 für einzelnes Schiff
Var objects As New CSortedStringObjectList();
objects.Add("Target", TransponderID);
objects.Add("FleetID", FleetID);
Var ausgabe As Boolean = MyShip.CreateItemGui(PortalGeneratorID, "SendGuestShip", objects);
Response.Add(ausgabe);
Hier wird lediglich ein Button mit der Aufschrift "Flug der Flotte xxx zu Portal yyy starten" erzeugt, welcher zu der systeminternen Versendungsroutine führt.
Ich hoffe einige Anregungen für ein besseres Subraumportalscripting geschaffen zu haben, welche (bitte, bitte, bitte) auch umgesetzt werden.
lg
Elchi