PDA

View Full Version : Subraumportalscripting



Elchi
20-04-2012, 18:12
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:



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:



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

Elchi
27-04-2012, 18:26
Nur mal so:
Soll das eingebaut werden und wenn ja wann?
Gibt es sonst noch Interesse daran?
Würde mich echt freuen

lg
Elchi

Elchi
13-05-2012, 13:51
Fällt mir gerade ein:
Man kann als Rückgabewert der Funktion auch eine CUrl machen, die zu einer Sicherheitsabfrage führt.
So kann man den Button eigenständig gestalten

lg
Elchi

Elchi
28-05-2012, 19:50
https://docs.google.com/document/d/1dg0 ... edit?pli=1 (https://docs.google.com/document/d/1dg0LjPT3mEz6Uhfcatpb3SzLHMR3WUKc2J612XJQtsQ/edit?pli=1)

Subraumportalscript. Einfache Möglichkeit per Scriptsystem eine Bestätigungseite für einen Sprung mehrerer Schiffe zu generieren. Diese dient dann als Evaluierung der Zustimmung des ausführenden Spielers. Dabei können nur Schiffe/Schiffe auf Co des bestätigenden Spielers den Sprung durchführen (Kontextswitch notwendig?)

PRIO 2!!!!!!!!!!!!!!!!!!!!!!!!!!
YEAHHHHHHHHHHHHHHHHH!!!!!
*FREUFREUFREU*