Results 1 to 6 of 6

Thread: Fehler bei Aufruf von Actions im CBaseShipManager

  1. #1

    Fehler bei Aufruf von Actions im CBaseShipManager

    Hallo,

    ich bekomme bei jedwedem Aufruf einer Action der Klasse "CBaseShipManager" eine exception. Beispiele:

    Code:
    Var vonSchiff as CMyShip;
    Var zuSchiff as CMyShip;
    
    ... (u.a. erzeuge zuSchiff usw., mit zuSchiff kann ich definitiv arbeiten, die ShipID wird z.B. korrekt ausgegeben)
    
    vonSchiff.Action.Undock();
    vonSchiff.Action.ActivateWarpCore(True);
    vonSchiff.Action.TransferToShip(zuSchiff.ShipID,* 100.0,* EBeamResource.Warpcore);
    Habe auch andere Actions probiert. Stets kommt beim Scriptablauf die Meldung:

    [Exception: Not allowed in extensions]
    bei stne.Scripting.Types.CBaseShipManager.InitShipActi on() in D:\source\proximo\dev1\projects\stne\game\Scriptin g\Objects.vb:Zeile 2555.
    bei stne.Scripting.Types.CBaseShipManager.Transferiere ZuSchiff(Int32 ToShipID, Double Anzahl, EBeamRessource Ressource) in D:\source\proximo\dev1\projects\stne\game\Scriptin g\Objects.vb:Zeile 2632.

    [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.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.MethodBase.Invoke(Object obj, Object[] parameters)
    bei larne.scripting.TScriptObjectMemberNative.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 2606.
    bei larne.scripting.TScriptObjectMemberNative.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 2595.
    bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\proximo\dev1\projects\shared\larne.scrip ting\ScriptExpressions.vb:Zeile 342.
    bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in D:\source\proximo\dev1\projects\shared\larne.scrip ting\ScriptCommands.vb:Zeile 60.
    bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 1271.

    [Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 133, Spalte: 9, Token: 'vonSchiff', Script: 'WK-Augleichen in Flotte']
    bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 1281.
    bei larne.scripting.TScriptContext.Execute(Int32 StartLine) in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 1314.
    bei larne.scripting.TScriptContext.Execute() in D:\source\proximo\dev1\projects\shared\larne.scrip ting\Script.vb:Zeile 1348.
    bei stne.TScript.ExecuteInternal() in D:\source\proximo\dev1\projects\stne\game\Temp3.vb :Zeile 1066.
    bei stne.TScript.ExecuteInQueue() in D:\source\proximo\dev1\projects\stne\game\Temp3.vb :Zeile 978.
    bei stne.wf_ScriptEdit.act_Execute() in D:\source\proximo\dev1\projects\stne\game\ScriptEd it.vb:Zeile 492.
    bei stne.wf_ScriptEdit.ExecuteAction() in D:\source\proximo\dev1\projects\stne\game\ScriptEd it.vb:Zeile 107.
    bei stne.TstnePage.CallExecuteAction() in D:\source\proximo\dev1\projects\stne\game\WebContr ols.vb:Zeile 775.
    bei stne.wf_ScriptEdit.Run() in D:\source\proximo\dev1\projects\stne\game\ScriptEd it.vb:Zeile 75.
    bei stne.wf_Game.Page_Load(Object sender, EventArgs e) in D:\source\proximo\dev1\projects\stne\game\Game.asp x.vb:Zeile 98.
    bei System.Web.UI.Control.LoadRecursive()
    bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    Assembly: stne.dll
    Time: 09.11.2011 21:23:58
    STNE-Version: 1.0.73.545
    Server: DE3
    User-ID: 32245



    Was ist das Problem? Was genau ist denn nicht erlaubt und was genau sind Extensions? Wie kann ich WK beamen (was offenbar das eigentliche Ziel ist, Undock usw. sind nur Tests ob andere Actions auch Fehler werfen, was sie tun).

    Danke im Voraus!

  2. #2

    Re: Fehler bei Aufruf von Actions im CBaseShipManager

    [Exception: Not allowed in extensions] << Das müsste doch eigentlich alles sagen? Du versuchst wohl die Aktion in einer Extension auszuführen, und das scheint nicht erlaubt. .TransferiereZuSchiff ist laut Fehlermeldung die "verbotene" Aktion. Wundert mich zwar, dass die Vorgegangen Aktionen wohl ausgeführt werden, aber sonst... Irgendwo hier gab es auch schon eine Diskussion darüber meine ich mich zu erinnern (kam glaube ich von Sargi)

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

    Re: Fehler bei Aufruf von Actions im CBaseShipManager

    So ist es. In Extensions sollen keine Aktionen möglich sein, weil man sonst noch Änderungen verursachen könnte, während die Schiffsseite schon erstellt ist. Da hilft nur ein normales Script oder Portal draus machen.
    Dies ist meine Meinung. Sie kann nicht durch Beleidigung, Drohung oder Schmeicheleien geändert werden.

  4. #4
    Ich wiederhole meine Frage vom Ende des Postings: was genau sind Extensions?

    Leider sagt mir die Fehlermeldung gar nichts, weil ich "Extensions" nicht zuordnen kann. Von den vielen Übersetzungsmöglichkeiten des englischen Begriffs "extension" vermag ich keine in einen sinnvollen Kontext zu einem Schiff oder einem Beamvorgang oder der Scriptumgebung von STNE zu setzen. Aber irgendwas davon muss ja gemeint sein.

    Du versuchst wohl die Aktion in einer Extension auszuführen
    Was meint "in einer Extension ausführen"? Ich stehe im Quellcode des Scriptes und drücke dann auf den Button "Script ausführen". Das geht gut bis zu besagten Aufrufen.

    @HerrKoch: die Aufrufe davor gehen auch nicht und liefern dieselbe Fehlermeldung. Ich habe einige Actions probiert um auszuschließen, dass "TransferToShip" die Fehlerquelle ist. Ich habe einige Aufrufe angegeben, um diese Tests anzudeuten. Drum steht drüber auch "Beispiele". Ist sicher nicht besonders glücklich dargestellt, ich wollte nur nicht die ganzen auskommentierten Tests und zugehörigen writelines mit posten. Wär wohl besser gewesen.

    Hier daher korrekt die Passage aus dem Script:
    Code:
    * *         /// WriteLine("test: deaktiviere WK");
            /// vonSchiff.Action.ActivateWarpCore(False);
            
            /// WriteLine("test: aktiviere WK");
            /// vonSchiff.Action.ActivateWarpCore(True);
            
            /// WriteLine("test: abdocken");
            /// vonSchiff.Action.Undock();
            
            /// WriteLine("test: andocken");
            /// vonSchiff.Action.DockTo(515894);
            
            
            WriteLine("test: beame " & Math.Truncate(benoetigtWK) & " von Schiff " & vonSchiff.ShipID & " zu Schiff " & zuSchiff.ShipID);
            vonSchiff.Action.TransferToShip(zuSchiff.ShipID, Math.Truncate(benoetigtWK), EBeamResource.Warpcore);
    Die Math.Truncate(...)-Sache ist bestimmt auch überflüssig, gehört zur Fehlersuche falls da vielleicht doch eine Integer oder eine double-Zahl ohne Nachkommawerte verlangt war - "extension" könnte sich ja auf die Nachkommastellen beziehen, ist ja auch eine "Erweiterung". Man weiß ja nie :P Wie Ihr seht tappe ich voll im Dunklen bezüglich "extension".

    @Sargraner: Was ist denn ein normales Script? Bzw. was habe ich? Ich bin gegangen über Datenbank - Scripting - MeineScripte - Neues Script anlegen - "Benutzerdefiniertes Script ohne Eingabeassistent" Erstellen. Dann hab ich den Quellcode eingetippt. Für mich klingt das nach "normalem Scripting".


    Ist mein erstser Versuch in STNE-Scritps, Hilfequelle = STNE-Script-Wiki und Objektexplorer. Eine vollständige API-Doku wäre übrigens extrem hilfreich, gibts die irgendwo? Inkl. Syntax usw., denn das ist ja eine Mischung verschiedener Sprachdialekte hier, woher soll man da zielsicher die richtige Syntax treffen ... Fühlt sich jedenfalls an wie eine c-java-basic-...zähl alle möglichen Sprachen auf...-mach ich wie ich grade will-Sprache.

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

    Re: Fehler bei Aufruf von Actions im CBaseShipManager

    Dann will ich mal deine Grundsatzfragen klären.

    Script: alles was im Scripteditor erstellt wurde sind Scripte.

    Webscript: sind Scripte die Html-Seiten erzeugen und auf Eingaben verarbeiten können, beginnen mit #UseInterface* Web

    Portale: sind Scripte die man Schiffe oder Kolonien zuweisen kann. Jemand der diesem Schiff/Kolonie im Spiel begenet kann sie aufrufen. beginnen mit #UseInterface ShipPortal oder ColoniePortal

    Extensions: sind Scripte die beim Anzeigen von STNE-Seiten ausgeführt werden, beginnen mit #UseInterface Gui

    In deinem Fall würde ich einfach mal das Gui hinter #UseInterface löschen, das ist vielleicht garkein Script welches Extensions benutzt.
    Dies ist meine Meinung. Sie kann nicht durch Beleidigung, Drohung oder Schmeicheleien geändert werden.

  6. #6

    Re: Fehler bei Aufruf von Actions im CBaseShipManager

    Volltreffer, Script läuft.

    Habe die #UseInterface ... Zeile gelöscht, alles schick.

    Besten Dank, Sargraner, auch für die Erklärungen Extensions/Portale usw.

Posting Permissions

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