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.
[-] The following 2 users say Thank You to Anachron for this post:
  • Bogus Curry, georgm76
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
[-] The following 2 users say Thank You to Servex Congrejo for this post:
  • Bogus Curry, Mareta Dagostino
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.
[-] The following 1 user says Thank You to Pius Noel for this post:
  • Anachron
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.
[-] The following 1 user says Thank You to Anachron for this post:
  • Pius Noel
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
  Sim on a Stick - MESH Castle nicht (mehr) begehbar Leora Jacobus 14 17.643 14.09.2019, 20:12
Letzter Beitrag: Pius Noel
  Umfrage: Anleitung für OpenSim 0.8 Regionenserver (nicht Arriba) noch nötig? Mareta Dagostino 14 2.927 23.04.2019, 17:31
Letzter Beitrag: Anachron
  Frage zu eigenem Grid, hänge fest Kalkofe 9 1.627 17.02.2019, 10:21
Letzter Beitrag: bimbam2103
Big Grin Assets kommen nicht ins Grid... Wollex Baily2 17 3.748 04.11.2018, 00:23
Letzter Beitrag: Wollex Baily2
Question Was benötige ich alles für ein eigenes Grid? Raul Gonzales 31 5.861 31.10.2018, 14:31
Letzter Beitrag: Raul Gonzales

Gehe zu:


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