• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Suche 10 min Timer rezzer für Safe-Zone

Makunia Resident

Aktiver Nutzer
Hallo, ich suche für unsere Sim einen Rezzer der wenn ein Avatar ihn berührt über dessen Kopf ein Timer erscheint der 10 min herunterzählt und dann wieder verschwindet. oder wenn man den "rezzer" verlässt ebenfalls verschwindet. gibt es im Market schon so etwas? ist für unsere Safe-Zone :3 Danke schon mal für die Antworten und sorry für die Unannehmlichkeit x3
 
Sorry, sowas kann es nicht geben. Damit bei einem Ava etwas über dessen Kopf erscheint, muss der Ava selbst ein Script tragen.

Ausnahme: Dies kann ein Rollenspiel-HUD sein wie ein Gormeter o.ä. Wenn ihr ein Rollenspiel-Meter-System verwendet, das zum Beispiel Schaden zählt und irgendwas über dem Kopf der Spieler anzeigt, dann können die Scripter dieses Systems dein gewünschtes Feature total simpel einbauen. Vielleicht haben die auch sowas bereits auf dem Marketplace, dann musst du aber noch dazu schreiben, welches System ihr in eurem Rollenspiel verwendet.
 
Entweder verstehe ich die Frage bzw. den Anwendungszweck nicht richtig oder es sollte ein simpler Follower reichen, der u.U. zusätzlich Kommandos empfängt und umsetzt.
 
Stimmt, das ist ein guter Workaround. :idea: Dann wäre die Schrift zumindest in der Nähe des Avas, wenn der sich nicht zu hektisch bewegt. Und wenn die Schrift eh verschwinden soll, wenn eine vermutlich recht kleine Zone verlassen wird, muss das verfolgende Prim ja keinen wilden Zickzackflug abkönnen.
 
Hier einmal ein Schnellschuss der beliebig angepasst werden kann: Wie z.b. Den Zähler entspr. umsetzen, den Follower unsichtbar machen, weitere Kommandos einbauen usw.

Der Rezzer:


Code:
default
{
    state_entry()
    {
        
    }

    touch_start(integer total_number)
    {
        llRezObject("follower",llGetPos() + <0,0,1>,ZERO_VECTOR,ZERO_ROTATION,123);
        
        llSleep(1.0);
        
        llSay(123,llDetectedKey(0));
    }
}



Der Follower

Code:
integer GLOB_kanal;
key GLOB_UUID;
vector GLOB_size;
float GLOB_offset;
integer GLOB_Counter;

default
{
    state_entry()
    {
       
    }

    listen(integer c,string n,key id,string msg)
    {
       GLOB_UUID = (key)msg;
        
        GLOB_size = llGetAgentSize(GLOB_UUID);
        GLOB_offset = (GLOB_size.z / 2.0) + 0.5;
        
        llSetTimerEvent(1.0);
    }    
    
    on_rez(integer s)
    {
        GLOB_kanal = s;
        llListen(GLOB_kanal,"",GLOB_UUID,"");
    }
    
    timer()
    {
        llSensor("",GLOB_UUID,AGENT,90.0,PI);
    }
    
    sensor(integer nr)
    {
        llSetPos(llDetectedPos(0) + <0,0,GLOB_offset>);
        llSetText((string)GLOB_Counter,<1,1,1>,1);
        
        GLOB_Counter ++;

        if(GLOB_Counter > 30) llDie();
    }
    
}



Den Follower nat. in das Objektinventar des Rezzers geben und "follower" nennen.

Dann den Test ausführen: Über dem Avatar, der den Rezzer anklickt, erscheint der Follower und zählt den Testcounter hoch. Nach 30 Sekunden verschwindet der Follower.
 
Zuletzt bearbeitet:
Das ist das Skript für das unsichtbare Objekt das gerezzt wird (das Objekt mit diesem Skript muss in den Rezzer):
Code:
integer iCHANNEL_INDICATOR = -5564234; //chat channel
float fTimer = 0.02; //timer
float fZOffset = 1.6; //meter above player
key kPlayer; //player
float fStartTime = 0; //Starttime
float fMaxTime = 600; //Maximum time before timeout.
string sMins = ":";
string sSecs = "s";
vector vColor = <1.0, 1.0, 1.0>;
float fAlpha = 1.0;
hide()
{ //stop timer
    llSetTimerEvent(0.0);
}
show()
{ //make visible and start timer
    llSetTimerEvent(fTimer); //start timer
}
default
{
    state_entry()
    { //on script start
        llListen(iCHANNEL_INDICATOR, "", NULL_KEY, ""); //setup listener
        hide(); //stop timer and hide
    }
    timer()
    { //on timer event
        if (fStartTime + fMaxTime < llGetTime())
        { //Time over.
            llDie();
        }
        integer iNow = (integer)(llGetTime() - fStartTime);
        integer iNowMinutes = iNow / 60;
        integer iNowSeconds = iNow - (iNowMinutes * 60);
        string sTime = (string)iNowMinutes + sMins + (string)iNowSeconds + sSecs;
        llSetText(sTime, vColor, fAlpha);
        vector vPos;
        vPos = llList2Vector(llGetObjectDetails(kPlayer, [OBJECT_POS]),0);
        if (vPos == ZERO_VECTOR)
        { //not found, die.
            llDie();
            return;
        }
        llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_POSITION,<vPos.x, vPos.y, vPos.z + fZOffset>]);
    }
    listen(integer channel, string name, key id, string message)
    { //on listener message
        if (channel == iCHANNEL_INDICATOR)
        {
                //set up for new player and update position
                fStartTime = llGetTime();
                kPlayer = (key) message;
                vector vPos;
                vPos = llList2Vector(llGetObjectDetails(kPlayer, [OBJECT_POS]),0);
                if (vPos == ZERO_VECTOR)
                { //not found, stop timer and hide
                    hide();
                    return;
                }
                llSetRegionPos(<vPos.x, vPos.y, vPos.z + fZOffset>); //update position
                show(); //make visible and start timer
        }
    }
}


Das ist der Rezzer-Code:
Code:
integer iCHANNEL_INDICATOR = -5564234; //chat channel
float fSleep = 2.6; //Wait a moment before sending a message.
default
{
    state_entry()
    {
    }

    touch_start(integer total_number)
    {
        llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos(), ZERO_VECTOR, ZERO_ROTATION, 0);
        llSleep(fSleep);
        llSay(iCHANNEL_INDICATOR, (string)llDetectedKey(0));
    }
}
 
Zuletzt bearbeitet:
Ein Dickes Dankeschön für alle Antworten 8-3 und ein dickes Flauschknuddel für Martin :D danke für deinen Service und späteren weiteren Support beim Anpassen :O
 
es gibt doch auch temporäres attachen am Ava, dabei geht das attachte Objekt nicht in den Besitz des Avas über.
Eventuell eine Sparsamere Variante anstatt einen follower zu nutzen ;)
 
@Archon
was man annehmen muss, nehmen rund 80% der spieler nicht an. vorallem wenn darum geht ob man ein Teil anlegen darf ^^ zuviele zuviel angst, und oftmal wird es auch dafür verwendet, unfug zu machen :( also somit scheidet dies aus.
 

Users who are viewing this thread

Zurück
Oben Unten