Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[gelöst] Kollisionscript Probleme
#1
Ich habe ein merkwürdiges Problem mit Kollisionscripte.
Betroffen sind im Moment Walkthrough Teleporter und Türen.
Aus heiterem Himmel reagieren sie nicht auf Kollisionen.
Per Mausklick arbeiten sie völlig korrekt.

Dann auf einmal arbeiten sie wieder völlig normal.
Ist das ein Problem, was speziell im OS-Grid auftritt?
Gezielt reproduzieren kann ich den Fehler auch nicht.

Auch neu einloggen, oder wegteleportieren und zurück hilft nicht.

Das ist vor allem lästig, wenn Gäste deswegen nicht zu Events gelangen.
Hypergrid : hg.osgrid.org:80:Xenotown
Web: https://laut.fm/xenolandia oder https://laut.fm/jazzvortex
[Bild: Radio-Xenolandia-qr-code-klein.png]
Page: https://Xenopolias.de

Zitieren
#2
Ich habe jetzt mal auf der ansonsten leeren OSGrid Region Osimgo einen Würfel mit einem Walkthrough Teleporter Script aufgestellt und habe dasselbe Problem.

Mein Script basiert auf dem osTeleportAgent (mit 3 Parametern) und der Vorgang wird durch einen collision_start Event getriggert. Mein Script ist schon ein paar Jahre alt. Ich hatte das mal irgendwo aufgelesen und für meine Zwecke angepasst. Da dein Script auch mit Partikeln spielt, gehe ich davon aus, dass es von der gleichen Basis stammt.

Ich werde am Wochenende mal ein wenig testen und versuchen der Sache auf den Grund zu gehen. Ggf. werde ich das Problem dann in die Mantis stellen.
[-] The following 1 user says Thank You to Pius Noel for this post:
  • Xenos Yifu
Zitieren
#3
Ist osTeleportAgent für das OS-Grid denn zugelassen? Oder anders gefragt: Liegt es am Collision-Event, oder an osTeleportAgent, dass es nicht funktioniert?

P.S. Dass Collision-Scripts gelegentlich mal die Arbeit verweigern, haben wir in DW allerdings auch schon beobachtet, da ist osTeleportAgent eindeutig nicht das Problem, nach einem Neustart der Region geht es dann in der Regel aber wieder. Die Ursache für dieses Verhalten konnten wir aber bislang nicht finden.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
[-] The following 2 users say Thank You to Anachron for this post:
  • Pius Noel, Xenos Yifu
Zitieren
#4
Schon mal danke. So scheint der Fehler wenigstens nicht bei mir zu liegen.
Hypergrid : hg.osgrid.org:80:Xenotown
Web: https://laut.fm/xenolandia oder https://laut.fm/jazzvortex
[Bild: Radio-Xenolandia-qr-code-klein.png]
Page: https://Xenopolias.de

Zitieren
#5
Hier das Script.

Code:
// :CATEGORY:HyperGate
// :NAME:OpenSim WalkthroughTeleporter

string  GridName     = "Visit Xenos Freebie Center\n";
string  SimAddress   = "Xenotown"; // use region name for inworld locations
string  LastVerified = "\n";
string  Message      = "";
string  BoilerPlate  = "\nWalk through to teleport";
vector  LandingPoint = <575.0, 160.0, 21.0>;
vector  TextColor    = <0,1,1>;
vector  LookAt       = <1.0,1.0,0.0>;

key     AgentToTransfer;
list    LastFewAgents;

string  CONTROLLER_ID       = "A";
integer AUTO_START          = TRUE;
list    particle_parameters = [];
list    target_parameters   = [];

StartEffects()
{
    // llCollisionSound("tos-computer-03", 1.0);
    
    particle_parameters = [
        PSYS_SRC_TEXTURE,          llGetInventoryName(INVENTORY_TEXTURE, 0),
        PSYS_PART_START_SCALE,     <0.10,0.10, FALSE>,
        PSYS_PART_END_SCALE,       <1.00,1.00, FALSE>,
        PSYS_PART_START_COLOR,     <1,1,1>,
        PSYS_PART_END_COLOR,       <1,1,1>,
        PSYS_PART_START_ALPHA,     (float)1.0,
        PSYS_PART_END_ALPHA,       (float)0.0,    
        PSYS_SRC_BURST_PART_COUNT, 500,
        PSYS_SRC_BURST_RATE,       (float)0.01,  
        PSYS_PART_MAX_AGE,         (float)1.0,
        PSYS_SRC_MAX_AGE,          (float)0.6,  
        PSYS_SRC_PATTERN,          2,
        PSYS_SRC_ACCEL,            <0.0,0.0,-3.0>,  
        PSYS_SRC_BURST_SPEED_MIN,  (float)1.2,
        PSYS_SRC_BURST_SPEED_MAX,  (float)5.01,
        PSYS_SRC_ANGLE_BEGIN,      (float)0.25*PI,
        PSYS_SRC_ANGLE_END,        (float)0.00*PI,  
        PSYS_SRC_OMEGA,            <0,0,0>,      
        PSYS_PART_FLAGS, ( 0
                            | PSYS_PART_INTERP_COLOR_MASK  
                            | PSYS_PART_INTERP_SCALE_MASK  
                            | PSYS_PART_EMISSIVE_MASK  
                            | PSYS_PART_FOLLOW_VELOCITY_MASK
                            | PSYS_PART_WIND_MASK            
                         )                  
    ];
        
    if ( AUTO_START ) llParticleSystem( particle_parameters );
}

PerformTeleport( key WhomToTeleport )
{
    integer CurrentTime = llGetUnixTime();
    integer AgentIndex = llListFindList( LastFewAgents, [ WhomToTeleport ] );
    if (AgentIndex != -1)
    {
        integer PreviousTime = llList2Integer ( LastFewAgents, AgentIndex+1 );
        if (PreviousTime >= (CurrentTime -5)) return;
        LastFewAgents = llDeleteSubList( LastFewAgents, AgentIndex, AgentIndex+1);
    }
    LastFewAgents += [ WhomToTeleport, CurrentTime ];
    osTeleportAgent( WhomToTeleport, SimAddress, LandingPoint, LookAt );
}

default
{  
    on_rez(integer start_param)
    {
        llResetScript();
    }
    
    state_entry()
    {
        //llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES, 0, 0, 0, 0, .05);
        llSetText(GridName + SimAddress + BoilerPlate + LastVerified + Message, TextColor, 1);  
    }
    
    collision_start(integer num_detected)
    {
        StartEffects();
    
        if(llDetectedKey(0) != AgentToTransfer)
        {
            AgentToTransfer=llDetectedKey(0);
            PerformTeleport( llDetectedKey(0));
        }
        else
        {
            llSetTimerEvent(3);
        }
    }
    
    timer()
    {
        AgentToTransfer="";
        llSetTimerEvent(0);
    }
    
    touch_start(integer num_detected)
    {
        llGiveInventory(llDetectedKey(0),llGetInventoryName(INVENTORY_NOTECARD, 0));
    }
    
    link_message( integer sibling, integer num, string mesg, key target_key )
    {
        if ( mesg != CONTROLLER_ID ) { // this message isn't for me.  Bail out.
            return;
        } else if ( num == 0 ) { // Message says to turn particles OFF:
            llParticleSystem( [ ] );
        } else if ( num == 1 ) { // Message says to turn particles ON:
            llParticleSystem( particle_parameters + target_parameters );
        } else if ( num == 2 ) { // Turn on, and remember and use the key sent us as a target:
            target_parameters = [ PSYS_SRC_TARGET_KEY, target_key ];
            llParticleSystem( particle_parameters + target_parameters );
        } else { // bad instruction number
            // do nothing.
        }            
    }
}

//// "Explosion" PARTICLE TEMPLATE v1 - by Jopsy Pendragon - 4/8/2008
//// You are free to use this script as you please, so long as you include this line:
//** The original 'free' version of this script came from THE PARTICLE LABORATORY. **//
Hypergrid : hg.osgrid.org:80:Xenotown
Web: https://laut.fm/xenolandia oder https://laut.fm/jazzvortex
[Bild: Radio-Xenolandia-qr-code-klein.png]
Page: https://Xenopolias.de

[-] The following 1 user says Thank You to Xenos Yifu for this post:
  • Bogus Curry
Zitieren
#6
Das Problem scheint mir eher mit der Logik im Script und dem Timer zu tun zu haben. Sowohl osTeleportAgent (auch mit 4 Argumenten) als auch der collision_start Event sollten im OSGrid funktinieren. Meine Möglichkeiten zum Testen bzw. eine andere Lösung anzubieten sind im Moment beschränkt, da ich selber im OSGrid noch ein gröseres Problem habe, das mich in Anspruch nimmt.
Zitieren
#7
Bis jetzt sieht es so aus das der pragmatischste Weg ist, den Sim neu zu starten.
Türen arbeiten zuverlässig, Teleporter auch.
Einzig, was aber niemand abschreckt, denke ich, besteht darin das man manchmal zweimal gegen die Teleporter laufen muss.

Ein Neustart pro Woche sollte langen.
Hypergrid : hg.osgrid.org:80:Xenotown
Web: https://laut.fm/xenolandia oder https://laut.fm/jazzvortex
[Bild: Radio-Xenolandia-qr-code-klein.png]
Page: https://Xenopolias.de

Zitieren
#8
Ich habe dieses Problem nicht mehr, seit ich den physischen Ubode entfernt habe
Zitieren
#9
Osgrid blockiert viele Anfragen, viele Dinge funktionieren nicht mehr
Zitieren
#10
Ich überlege gerade die Walkthroughteleporter in die Tonne zu kloppen.
Es wird immer schlimmer, trotz ganz frischem Neustart.
Ich kann doch den Leuten nicht zumuten, bis zu 5-mal davor zu laufen. *sauer bin...
Hypergrid : hg.osgrid.org:80:Xenotown
Web: https://laut.fm/xenolandia oder https://laut.fm/jazzvortex
[Bild: Radio-Xenolandia-qr-code-klein.png]
Page: https://Xenopolias.de

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 515 17.03.2024, 15:29
Letzter Beitrag: Xenos Yifu
  Probleme auf eigene Region im OS-Grid zugelangen Xenos Yifu 11 1.862 03.07.2022, 18:26
Letzter Beitrag: Xenos Yifu
  Probleme mit FritzBox und (dauerhafter) Portfreigabe Bink Draconia 14 4.279 20.07.2021, 09:00
Letzter Beitrag: Dorena Verne
  Probleme bei der Auswahl der Lieblingsorte im Profil Dorena Verne 2 3.900 11.02.2020, 15:04
Letzter Beitrag: Dorena Verne
  "Sammelthread" Probleme mit der 0.9.1.0 snail Dorena Verne 18 15.484 29.11.2019, 14:06
Letzter Beitrag: Klarabella Karamell

Gehe zu:


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