Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
attachments funktionieren nicht im Schul-Grid
#1
Hallo!
Ich bin Lehrer und wir haben an unserer Schule ein Schul-Grid.
Ich verwende den Firestorm Viewer.
Leider kann ich über den Server und dessen Einstellungen noch keine Angaben machen.

Es gibt ein Problem mit Attachments:

Wenn ich das Script des Attachments starte, wird das Attachment nicht angehängt.
Stattdessen erhalte ich die Error Message: "System.InvalidCastException: Cannot cast from source type to destination type."

Es scheint sich nicht um einen Script-Error zu handeln, sondern scheint mit der Architektur der Software zusammenzuhängen.

Hat jemand von euch vielleicht eine Idee, wie man das Problem lösen könnte?
Ich poste Script und Error-Message unten.

Vielen Dank im Voraus!

script:
Code:
// This example illustrates how to handle permissions before and after llAttachToAvatarTemp has been called. Because ownership
// changes when the object is attached, the initial PERMISSION_ATTACH is revoked and new permissions need to be requested.

integer gAttach = TRUE;

default
{

    touch_start(integer num)
    {
        if (gAttach)  // Object has not been attached yet
        {
            llRequestPermissions(llDetectedKey(0),PERMISSION_ATTACH);
            gAttach = FALSE;
        }
        else   // Object has been attached, but you still need PERMISSION_ATTACH in order to detach the object
        {
            if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION | PERMISSION_ATTACH)
            {
                llDetachFromAvatar();  // Note that the object vanishes when detached, so there is no need to set gAttach = TRUE again
            }
        }
    }

    attach(key id)
    {
        if (id)  // Object has been attached, so request permissions again
        {
            llRequestPermissions(id,PERMISSION_ATTACH | PERMISSION_TRIGGER_ANIMATION);
        }
    }

    run_time_permissions (integer perm)
    {
        if (!gAttach)  //First time
        {
            if (perm & PERMISSION_ATTACH)
            {
                gAttach = TRUE;
                llAttachToAvatarTemp(ATTACH_HEAD);  // Initial PERMISSION_ATTACH is revoked at this point
            }
        }
        else  // Second time
        {
            if (perm & PERMISSION_ATTACH | PERMISSION_TRIGGER_ANIMATION)
            {
                llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
            }
        }
    }
}

error message:
Zitat:[06:09] Module command functions not enabled
[06:09] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

Server stack trace:
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
at OpenSim.Region.ScriptEngine.Shared.ScriptBase.Executor.ExecuteEvent (System.String state, System.String FunctionName, System.Object[] args) [0x00000] in <filename unknown>:0

Exception rethrown at [0]:
---> System.InvalidCastException: Cannot cast from source type to destination type.

Server stack trace:
at OpenSim.Region.ScriptEngine.Shared.Api.MOD_Api.modInvokeI (System.String fname, System.Object[] parms) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) OpenSim.Region.ScriptEngin
Zitieren
#2
So ganz schlau werde ich da nicht draus, aber die Fehlermeldung deutet auf einen Fehler bei der zwangsweisen Umwandlung von Datentypen hin (Typecasting : "Cannot cast from source type to destination type."). Leider ist die Fehlermeldung nicht ganz vollständig wiedergegeben, sondern am Ende abgeschnitten.

Bei der Durchsicht des Scriptteils auf der Suche nach einem unpassenden Datentyp sah ich dann :

Code:
attach(key id)
    {
        if (id) ...

Hier wird ein Datentyp "key" als Boolscher Wert (TRUE or FALSE) verwendet - was zu einem solchen Typecasting führt ...

Ob es an dieser Stelle hakt kann ich so nicht sagen, aber eine andere Stelle für ein Typecasting kann ich in dem angegebenen Script auf Anhieb nicht sehen.

Vielleicht hilft das ja weiter
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Zitieren
#3
nicht alle Befehle von LL gehen in Opensim.

Dafür gibt es eigene Befehle

Siehe diesen Link

http://opensimulator.org/wiki/OSSL_Implemented
Regionen in OpenSimulation
http://cff.lffl.de

[Bild: style6,Servex-Grid.png]

Zitieren
#4
Also ich habe das Script von obn mal 1:1 in einen Würfel kopiert und den Würfel auf den Boden gelegt.

Klicke ich ihn an, kommt eine Dialogbox mit folgender Meldung und drei Buttons (Yes/No/Block):
"'Object', an object owned by 'Pius Noel', would like to: Attach to your avatar"
Wähle ich "yes", dann wird mir der Würfel über den Kopf gestülpt.

Klickt ein anderer Avatar den Würfel an, dann passiert für ihn dasselbe. Akzeptiert er mit "Yes" dann wird der Würfel angezogen.

Das Script funktioniert also grundsätzlich mal.

Getestet habe ich mit der OpenSim Entwickler Version von gestern (OpenSim 0.9.1.1 Yeti Dev bf0697d (Unix/Mono)) und einer selbstkompilierten Firestorm Version vom August. Meine Script Engine ist XEngine.

Nachtrag 9.11.2019: Was mich etwas irritiert ist die Meldung "[06:09] Module command functions not enabled".
Ich kann mich nicht errinnern diese Meldung jemals gesehen zu haben.
Zitieren
#5
(19.11.2019, 17:10)Pius Noel schrieb: ...

Nachtrag 9.11.2019: Was mich etwas irritiert ist die Meldung "[06:09] Module command functions not enabled".
Ich kann mich nicht errinnern diese Meldung jemals gesehen zu haben.

Ja, die Meldung hat mich auch verwirrt, denn ich habe noch nie ein Script gesehen, oder auch nur davon gehört, das diese "module command functions" verwendet. Das hier in Rede stehende Script tut es jedenfalls nicht. Dass diese "not enabled" sind ist normal - das ist der default Wert in der osslEnable.ini.
P.S. Sollte man auch auf jeden Fall so lassen, wenn man nicht sehr genau weiss, was man da tut!
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Zitieren
#6
Autsch... ja, das kann gut sein, dass ich diese in der osslEnable.ini zumindest für mich wieder mal hochgesetzt hatte.

Auf der Region in der ich getestet habe, laufen noch andere Scripte, die normalerweise nicht laufen würden.
Zitieren
#7
(20.11.2019, 16:05)Pius Noel schrieb: Autsch... ja, das kann gut sein, dass ich diese in der osslEnable.ini zumindest für mich wieder mal hochgesetzt hatte.

Auf der Region in der ich getestet habe, laufen noch andere Scripte, die normalerweise nicht laufen würden.

Mag sein oder auch nicht sein, worauf ich hinaus wollte ist aber, dass das im Eingangspost angegebene Script eigentlich diese Fehlermeldung nicht verursacht haben kann, da dort garkeine Module Functions invoked werden.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [gelöst] Offline Message aus dem OSGrid kommen bei mir nicht an Xenos Yifu 11 271 17.03.2024, 15:29
Letzter Beitrag: Xenos Yifu
  Voice von Opensim unter Ubuntu geht nicht mehr. (Geloest) Ezry Aldrin 9 1.607 12.07.2023, 00:52
Letzter Beitrag: Ezry Aldrin
  Grid-Namen ändern Lindalou Ellisson 6 851 23.11.2022, 20:22
Letzter Beitrag: Genie Fegte
  Probleme auf eigene Region im OS-Grid zugelangen Xenos Yifu 11 1.704 03.07.2022, 18:26
Letzter Beitrag: Xenos Yifu
  Kleines Grid auf PC Gridname statt IP Adresse Kalkofe 5 1.746 12.12.2021, 23:16
Letzter Beitrag: Manfred Aabye

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste