PDA

View Full Version : EGuiControl.LogbookPage



Sargraner
30-11-2011, 18:05
Namd allerseits!

Mit Ach und Krach habe ich es gerade hinbekommen, meine Logbuchanzeige zu erweitern. Das Schlimmste war dabei, die Logbuchseite zu identifizieren. Funktioniert zwar, aber so kann ich das nicht veröffentlichen. Deshalb wünsche ich mir zum 1. Advent ein EGuiControl.LogbookPage um mit dessen Hilfe einen Filter basteln zu können, der nur anspringt, wenn ich die Logbuchübersichtsseite aufrufe.

Außerdem würde mich mal brennend interessieren, wozu die Funktionen

Function AddFilter(Filter As CGuiEventFilterBase)
Function AddPageAction(PageAction As Integer) As CGuiEventFilter
Function AddSubPage(SubPage As Integer) As CGuiEventFilter

in Class CGuiEventFilter

gut sind.

Arakis
07-12-2011, 12:53
AddPageAction alias AddFilter(new CGuiEventFilterPageAction(PageAction))
AddSubPage alias AddFilter(New CGuiEventFilterPageAction(PageAction))
AddFilter sollte nun klar sein.

PageAction --> Jede Aktion im Spiel hat eine Nummer, welche aber nur für die aktuelle Webform gültig ist(EGuiPage). So könnte man z.b. nach einer flugaktion etwas bestimmtes tun. Achtung: Es gibt keine Garantie, dass sich die ID's von zeit zu zeit ändern(bzw. verschieben, weil ich zwischendrin was einfüge). Die ID's sind nämlich nicht festvergeben und werden vom Compiler festgelegt in Reihenfolge, wie sie im Quelltext von STNE stehen. Ausnahme: Schiffsaktionen, da sind die Konstanten von mir statisch vergeben worden.
SubPage ---> Geiches gilt für Unterseiten pro Webform. Gebäudeansicht oder kampfeinstellungen sind Unterseiten von EWebForm.Ship bzw. EWebform.Planet

Das mit dem Logbuch müsstest nur noch mal näher erläutern. Du redest von Logubchseiten, wärehdn du das Event aber nur auf einer Übersichtsseite haben möchtest("Eingang", "Ausgang", "Gelöscht").

Lieben Gruß,
Sebastian

Sargraner
07-12-2011, 13:20
OK! Die Erklärungen muss ich erst ein paar Mal in Ruhe durch die Großhirnrinde jagen.

Mit Logbuchseite meine ich die Übersichtsseite, also die, auf die man kommt, wenn man unter Kommunikation 'Logbuch' anklickt.

Arakis
07-12-2011, 13:55
Ach soooo, na das ist simpel.

Var* Filter* As* CGuiEventFilter* =* CGuiEventFilter.Create().AddPage(EGuiPage.Logs);
ScriptContext.RegisterEvent(..., ...,* Filter);

Lieben Gruß,
Arakis

Elchi
07-12-2011, 18:57
Es gibt keine Variable mit dem Namen 'EGuiPage'
compiler error: No method found with these amount of parameters. (Line: 1, Column: 58, Index: 57, Token: 'AddPage', File: 'Testscript').

Arakis
10-12-2011, 05:01
Stimmt....ist beim nächsten Update mit drin.

Notfalls für "EGuiPage.Logs" einfach die Konstante 106 eintragen. EGuiPage-Konstanten ändern sich nicht.

Lieben Gruß,
Arakis

Sargraner
10-12-2011, 08:13
Wenn ich die Konstante 106 eintrage:

Es ist ein Fehler aufgetreten
Das Objekt mit dem Typ "System.Int32" kann nicht in den Typ "stne.EWebForm" konvertiert werden.

Arakis
10-12-2011, 20:55
Das Update ist nun drin, daher sollte die Enumeration EGuiPage.Logs nun funktionieren.

Lieben Gruß,
Arakis

Sargraner
11-12-2011, 09:47
Funktioniert!

*Daumen hoch*

(Wieder kein passendes Smilie vorhanden.)