logo

Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden.Neue Registrierungen sind deaktiviert.

Mitteilung

Icon
Error

Einloggen


Optionen
Ansicht
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline MartinRJ Fayray  
#1 Geschrieben : Montag, 2. März 2015 04:29:35(UTC)
MartinRJ Fayray

Rang: Ehrenmitglied

Ansehen:

Mitglied seit: 05.09.2014(UTC)
Beiträge: 84
Germany
Wohnort: Tulln und Rostock

Dankte: 1 mal(e)
Mit folgendem möglichst einfach gehaltenem Skript kann man ein einfaches Relay bauen, das Nachrichten in andere Regionen in Second Life umleitet.

Dazu gibt man das "Server"-Skript in ein Objekt in der Ziel-Region, und notiert sich die UUID die nach dem Abspeichern/Rezzen ausgegeben wird:

Server
Code:

integer iCh = 0; //Channel where emails are sent to in this region.


float fTime = 15.0;

string sMes = "New UUID of the chatrelay-server. Please use the format 'uuid At lsl.secondlife.com' to send messages. Replace 'uuid' with: ";
default
{
    state_entry()
    {
        llInstantMessage(llGetOwner(), sMes + (string)llGetKey());
        llSetTimerEvent(fTime);
    }
 
    timer()
    {
        llGetNextEmail("", "");
    }
 
    on_rez(integer start_param)
    {
        llResetScript();
    }

    email( string time, string address, string version, string message, integer num_left )
    {
        if (iCh == 0)
        {
                llShout(0, llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1));
        }
        else
        {
                llRegionSay(iCh, llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1));
        }
 
        if(num_left)
        {
                llGetNextEmail("","");
        }
    }
}


Die notierte UUID schreibt man dann in die Beschreibung des "Client"-Prims. Dieses kann man an den eigenen Avatar anhängen.

Client
Code:

integer iChannel = 3;
string sMsg = "Please enter your message or say your message in chat on channel 3.";

string sAdd = "@lsl.secondlife.com";
string sSubj = "Relay-message";
default
{
    state_entry()
    {
        llListen(iChannel, "", llGetOwner(), "");
    }
    changed(integer change)
    {
        if (change & CHANGED_OWNER)
        {
            llResetScript();
        }
    }
    listen(integer channel, string name, key id, string message)
    {
        llEmail(llGetObjectDesc() + sAdd, sSubj, message);
    }
    touch_start(integer total_number)
    {
        llTextBox(llGetOwner(), sMsg, iChannel);
    }
}


Um eine Nachricht zu senden klickt man auf das Client-Prim, und gibt die zu sendende Nachricht in das Dialogfeld (Textbox) die sich daraufhin öffnet ein.
Alternativ kann man die Nachricht auch auf Channel 3 eingeben.

Der Channel auf dem die Nachricht in der Ziel-Sim ausgegeben wird ist Channel 0 (lokaler Chat), man kann aber auch auf anderen Channels senden, indem man den Wert integer iCh = 0; in der ersten Zeile des Server-Skripts entsprechend ändert. Falls der Channel 0 ist, wird statt llRegionSay die llShout-Funktion verwendet, um in den lokalen Chat zu "schreien"!

Bearbeitet vom Benutzer Donnerstag, 26. März 2015 16:49:28(UTC)  | Grund: Nicht angegeben

It is the mark of an educated mind to be able to entertain a thought without accepting it.

Wanna join the discussion?! Login to your forum account.Neue Registrierungen sind deaktiviert.

Rss Feed  Atom Feed
Benutzer, die gerade dieses Thema lesen
OceanSpiders 2.0
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

Powered by YAF.NET | YAF.NET © 2003-2018, Yet Another Forum.NET
Diese Seite wurde in 0.036 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt