Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Schiffs-Gui

  1. #1
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Schiffs-Gui

    Wie bekomme ich per Gui auf einer Schiffsseite die ID heraus? Wennn ich versuche Quelltext zu extrahieren kommt:

    [Exception: Es kann kein Text zurückgegeben werden, da das erste Childcontrol kein THtmlLiteral ist]
    bei larne.Html.THtmlControl.get_InnerHtml() in D:\source\jack\dev1\projects\shared\larne.extented \WebControls.vb:Zeile 2532.
    bei larne.Html.THtmlControl.get_InnerHtml1() in D:\source\jack\dev1\projects\shared\larne.extented \WebControls.vb:Zeile 3041.

    [TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.]
    bei System.RuntimeMethodHandle._InvokeMethodFast(IRunt imeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
    bei System.RuntimeMethodHandle.InvokeMethodFast(IRunti meMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
    bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
    bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    bei System.Reflection.RuntimePropertyInfo.GetValue(Obj ect obj, Object[] index)
    bei larne.scripting.TScriptObjectMemberNative.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 2604.
    bei larne.scripting.TScriptObjectMemberNative.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 2595.
    bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.vb:Zeile 342.
    bei larne.scripting.Commands.TCodeCommandDim.Process(T ScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.vb:Zeile 145.
    bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 1271.

    [Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 15, Spalte: 9, Token: 'i', Script: 'Script 6435']
    bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 1281.
    bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 1097.
    bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom Mem, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 1054.
    bei larne.scripting.TScriptObjectMemberCustom.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.vb:Zeile 1879.
    bei larne.scripting.Types.CDelegate.Invoke(Object[] args) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptMethods.vb:Zeile 140.
    bei stne.TScriptExtensionItem.CallEvent(CGuiEvent e) in D:\source\jack\dev1\projects\stne\game\Scripting\E xtensions.vb:Zeile 182.

    [Exception: Es ist ein Fehler in einer Extension aufgetreten.]
    bei stne.TScriptExtensionItem.CallEvent(CGuiEvent e) in D:\source\jack\dev1\projects\stne\game\Scripting\E xtensions.vb:Zeile 193.
    bei stne.TScriptExtensionManagerUserItem.CallEvent(CGu iEvent e) in D:\source\jack\dev1\projects\stne\game\Scripting\E xtensions.vb:Zeile 121.
    bei stne.TUserSession.CallScriptEvent(CGuiEvent e) in D:\source\jack\dev1\projects\stne\game\UserLib.vb: Zeile 6195.
    bei stne.TstnePage.PrepareRender() in D:\source\jack\dev1\projects\stne\game\WebControls .vb:Zeile 526.
    bei stne.wf_Game.Page_Load(Object sender, EventArgs e) in D:\source\jack\dev1\projects\stne\game\Game.aspx.v b:Zeile 126.
    bei System.Web.UI.Control.LoadRecursive()
    bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    Assembly: larne.extended.dll
    Time: 20.11.2011 15:34:01
    STNE-Version: 1.0.73.580
    Server: DE3
    User-ID: 25442
    lg
    Elchi
    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

  2. #2

    Re: Schiffs-Gui

    Code:
    Function CallBack_PageBeforeRender(e As CGuiEventOnPageBeforeRender){
      Var Root As IGuiControl = e.Page.Body;
      Var helmtable As IGuiControlCollection = e.Page.Body.FindByControlType(EGuiControl.ShipPage_HelmControlTable);
      If(helmtable.Count <> 0) {
        Var idbox As IGuiControl = Root.Controls.Item(0);
        Var i As Integer = idbox.InnerHtml.LastIndexOf(" NCC ");
        Var j As Integer = idbox.InnerHtml.IndexOf(" ", i + 6);
        Var id_str As String = idbox.InnerHtml.Substring(i + 5, j - (i + 5));
        Var id As Integer = Int32.Parse(id_str);
        Var activeShip As New CMyShip(id);
    // da haste nen CMyShip... versuch aber nichmal .Action aufzurufen ;)
      }
    }

  3. #3

    Re: Schiffs-Gui

    Drei mal hintereinander idbox.InnerHtml aufgerufen ohne das Ergebnis zwischenzuspeichern, da wundert es mich nicht, dass viele Scripte mit ihrer Ausführungszeit nicht auskommen

    Lieben Gruß,
    Arakis
    Betreiber vom Shopping-Portal www.edaro.de


    Unternehmensseite: www.tamani.de

  4. #4

    Re: Schiffs-Gui

    Arrakis, das ist eine kopie aus nem testscript... kein echt genutztes script
    und ich bin noch nie ans limit gestossen...

  5. #5
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Re: Schiffs-Gui

    @ker: In der Theorie richtig, aber in der Praxis:

    Code:
      Var Root As IGuiControl = e.Page.Body;
      Var helmtable As IGuiControlCollection = e.Page.Body.FindByControlType(EGuiControl.ShipPage_HelmControlTable);
      Var helmform As IGuiControlCollection = e.Page.Body.FindByControlType(EGuiControl.ShipPage_HelmControlForm);
      Var lrstable As IGuiControlCollection = e.Page.Body.FindByControlType(EGuiControl.ShipPage_LRSTable);
      If(helmtable.Count <> 0) {
        //Var idbox As IGuiControl = Root.Controls.Item(0);
        Var i As String = Root.InnerHtml/*.LastIndexOf(" NCC ")*/;
        /*Var j As Integer = idbox.InnerHtml.IndexOf(" ", i + 6);
        Var id_str As String = idbox.InnerHtml.Substring(i + 5, j - (i + 5));
        Var id As Integer = Int32.Parse(id_str);
        Var activeShip As New CMyShip(id);
      */}
    Wenn ich den verwende taucht die gleiche Fehlermeldung auf. Sobald ich ich die "var i as string"-Zeile ausklammere, funktioniert alles. der Fehler liegt darin, dass man nicht auf InnerHtml zurückgreifen kann. ich suche eine alternative Funktion, wie man ShipID rausbekommen kann.

    lg
    Elchi
    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

  6. #6

    Re: Schiffs-Gui

    du bist lustig...

    Code:
    Root.Controls.Item(0);
    ist nicht das gleiche wie

    Code:
    Root.InnerHtml

  7. #7
    Senior Member
    Join Date
    Aug 2011
    Location
    Erde - Deutschland - Sachsen-Anhalt - Harz
    Posts
    180

    Re: Schiffs-Gui

    Also, ich bekomme die NCC eines Schiffes auf folgende Weise:

    Var Root As IGuiControl = e.Page.Body;
    Var ncc As String = Root.Controls.Item(0).InnerHtml;
    ncc = ncc.Substring(ncc.IndexOf(' NCC ') + 5);
    Dies ist meine Meinung. Sie kann nicht durch Beleidigung, Drohung oder Schmeicheleien geändert werden.

  8. #8

    Re: Schiffs-Gui

    dann ist aber noch der schiffstyp mit drin

  9. #9
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Re: Schiffs-Gui

    Code:
    Function CallBack_PageBeforeRender(e As CGuiEventOnPageBeforeRender){
      Var html As String = e.Page.Body.Controls.Item(0).InnerHtml;
    }
    Hier gibt es eine Fehlermeldung.

    Code:
    Function CallBack_PageBeforeRender(e As CGuiEventOnPageBeforeRender){
      Var html As String = "Hello World";
    }
    Hier nicht.

    logische Schlussfolgerung:

    1. e.Page.Body.Controls.Item(0).InnerHtml kann nicht aufgerufen werden.

    oder

    2. e.Page.Body.Controls.Item(0).InnerHtml kann nicht in einen String geschrieben werden.
    (oder beides)

    [Exception: Es kann kein Text zurückgegeben werden, da das erste Childcontrol kein THtmlLiteral ist]
    Das hier und weil operator=(s1 as string, s2 as string) meines Wissens nach einwandfrei funktioniert lässt Möglichkeit Nr. 1 in den Vordergrund rücken.

    ------------------------------------------------------------------------------------------------------------------------------

    Hier meine Frage:
    Wie kann ich es umgehen e.Page.Body.Controls.Item(0).InnerHtml zu verwenden um an den Schiffsnamen ranzukommen?

    lg
    Elchi
    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

  10. #10

    Re: Schiffs-Gui

    ... das
    Code:
    If(helmtable.Count <> 0) {
    ist nicht grundlos da... das script stirbt sonst bevor du zum entsprechenden seitenaufruf kommst...

    kannst du einfach mal das hoheitsgebietsscript (in der scriptbib) von mir ausführen, das läuft nämlich bei mir und bei archer, weshalb anzunehmen ist, dass meine methode funktioniert!

    wir reden auch von s3, richtig?
    nur um sicher zu gehen, dass da keine serverabhängigen dinge passieren...

Posting Permissions

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