Results 1 to 6 of 6

Thread: EGuiControl in der Ship-Page

  1. #1

    EGuiControl in der Ship-Page

    Es gibt bei EGuiControl 3 Varianten die man in der Schiffs-Page anwenden kann (können sollte):
    - ShipPage_HelmControlForm
    - ShipPage_HelmControlTable
    - ShipPage_LRSTable
    Zumindest deutet der Name drauf hin :>
    Unten ist ein kleines BeispielScript, basierend auf Arakis 1x1 LRS-Script. Das macht nichts anderes als eine UserContext-Zeile auszugeben wenn der Event getriggert ist. Scheinbar ist es aber so, das genau diese 3 Events nicht implementiert sind(?) oder komplett anders genutzt werden müssen.

    Hat jemand damit schon (positive) Erfahrung gesammelt? Vorschläge? Ideen?
    Ziel ist es die LRS-Map ein wenig Augenfreundlicher zu gestalten... -.-

    __________________________________________
    #UseInterface Web, Gui;

    Function Init()
    {

    ScriptContext.EnableExtension();

    Var ShipListFilter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipList_ShipTable);

    Var HelmTableFilter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipPage_HelmControlTable);
    Var HelmFormFilter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipPage_HelmControlForm);
    Var LRSFilter As CGuiEventFilter = CGuiEventFilter.Create().AddControl(EGuiControl.Sh ipPage_LRSTable);
    Var ShipPageFilter As CGuiEventFilter = CGuiEventFilter.Create().AddPage(EGuiPage.Ship);

    ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, HelmTableFilter); ScriptContext.RegisterEvent(EGuiEventType.TableAft erCreate, AddressOf CallBack_TableAfterCreate, HelmTableFilter);
    ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, LRSFilter);
    ScriptContext.RegisterEvent(EGuiEventType.TableAft erCreate, AddressOf CallBack_TableAfterCreate, LRSFilter);
    ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, HelmFormFilter);
    ScriptContext.RegisterEvent(EGuiEventType.TableAft erCreate, AddressOf CallBack_TableAfterCreate, HelmFormFilter);

    ScriptContext.RegisterEvent(EGuiEventType.TableBef oreCreate, AddressOf CallBack_TableBeforeCreate, ShipListFilter);
    ScriptContext.RegisterEvent(EGuiEventType.TableAft erCreate, AddressOf CallBack_TableAfterCreate, ShipListFilter);

    ScriptContext.RegisterEvent(EGuiEventType.InfoBarA fterCreate, AddressOf CallBack_InfoBarAfterCreate, ShipPageFilter);

    ScriptContext.ActivateEvents();
    ScriptContext.WriteAppLog("Script gestartet...");
    }

    Function CallBack_TableBeforeCreate(e As CGuiEventOnTableBeforeCreate)
    {
    ScriptContext.WriteAppLog("TableBeforCreate erreicht...");
    }

    Function CallBack_TableAfterCreate(e As CGuiEventOnTableAfterCreate)
    {
    ScriptContext.WriteAppLog("TableAfterCreate erreicht...");
    }

    Function CallBack_InfoBarAfterCreate(e As CGuiEventOnInfoBarAfterCreate)
    {
    ScriptContext.WriteAppLog("InfoBarAfterCreate erreicht...");
    }

    Init();

  2. #2
    Senior Member
    Join Date
    Nov 2011
    Posts
    150
    Ich bin mir nicht sicher, aber ich glaube die Table-Events funktionieren nur in der Schiffsauswahl. Ich würde nur den Filter auf die Schiffsseite mit PageBeforeRender machen und dann die Schiffsseite verändern.
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

  3. #3
    Naja.. ich wüsste nicht was "ShipPage_LRSTable" in der Schiffs-Page zu suchen hat. Davon abgesehen müsste dann ja in der Schiffs-Page auch der entsprechende Eintrag kommen; ist ja extra von mir so geschrieben.

    Wenn ich PageBeforRende nehme wüsste ich auf Anhieb garnicht, wie ich dann die LRS-Tabelle anspreche bzw. auswähle. Deswegen sind ja (wahrscheinlich) diese Einträge da. Wirklich sicher weis es wohl nur Arakis... aber der ist irgendwie verschollen scheints mir ^^
    Kann da evtl. einer der Admins mal nachschauen?

  4. #4
    Senior Member
    Join Date
    Nov 2011
    Posts
    150
    Die LRS-Table findest du mit e.Page.Body.FindByControlType(EGuiControl.ShipPage _LRSTable) http://game3.stne.net/objectexplorer...dByControlType
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

  5. #5
    Ui; danke

    Damit kann man schon einiges machen; z.B. Grafiken und Tooltips austauschen.
    Aber... ich möchte das ToolTip bearbeiten (und die Grafik mit Style.Add) ... und da komm ich grad nicht weiter weil:

    Wie mache ich aus der IGuiControl ne Tabelle? Die einzelnen Items dieser LRS_Tabelle (img & div) kann ich ansprechen... bleiben aber IGuiControls. Wie nehm ich diese wieder auseinander? Ich hab versucht den Inhalt auf Platzhalter zu transportieren:

    Var div As New CHtmlDiv();
    div.GuiControl.Add(Cell.Controls.Item(0));

    Aber schon alleine diese Anweisung hat zur Folge dass das entsprechende Item gelöscht wird in der LRS_Tabelle.

    Vorschläge?

  6. #6
    Senior Member
    Join Date
    Nov 2011
    Posts
    150
    Man kann zwar CHtmlControl in IGuiControl umwandeln, aber nicht umgekehrt. Da außerdem die LRS-Signaturen (soweit ich weiß) erst beim Rendern (also nachdem das Script läuft) eingefügt werden, musst du am "lebendigen Objekt", also der IGuiControl selbst arbeiten. Das geht meistens nur mit Try and Error und erfordert Geduld beim Programmieren
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •