• 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.

group inviter gibt Meldung 2 x raus (sensor)

Duffy Kohime

Aktiver Nutzer
Hi zusammen,
nach langem mal wieder ein mittelschweres Problem (für mich jedenfalls) ;)

dieses Script (ein teil aus dem ganzen, denke aber dort steckt der Fehler?)
Code:
sensor(integer num_detected)
    {
        integer x;
        key     detectedKey;
        
        for (x=0; x < num_detected; x += 1)
        {
            detectedKey = llDetectedKey(x);
            if (llListFindList(givenList, [detectedKey]) < 0)
            {
               
                givenList += llDetectedKey(x);
                               llSay(0, "/me by clicking this link secondlife:///app/group/" + ((string)group_key) + "/about");
                
                if (llGetListLength(givenList) >= 80)
                {
                    givenList = llDeleteSubList(givenList, 0, 59);
                }
            }
            
        }

Es dient dazu die Url zum group invite auszuspucken in den Chat. Funktioniert auch .
ABER, wenn 2 Avatare in den bereich kommen vom greeter , wird auch 2 mal die Meldung ausgespuckt. Ich denke wenn 10 gleichzeitig da sind steht 10 mal im Chat die URL. Das soll natürlich nicht sein. Möchte das nur derjenige eine Meldung bekommt der auch gerade "anreist" nicht derjenige der noch mitherumsteht schon wieder trotz "List".

Am Ende das mit der List scheint auch zu funktionieren. Ich werde nicht mehr angefragt wenn ich erneut in den bereich komme. bekomme aber wohl 2 meldungen sobald ein weiterer avatar in den bereich kommt. weiss allerdings nicht genau was die 3 zahlen bedeuten. 80 = Avatare vermute ich dann wird gelöscht, aber die 0 und die 59 wofür steht das ?? < war übrigens meine 2 te Frage ;)

Danke im vorraus Gruss Duffy
 
@Nicoletta
HuHu , ui das geht ja mal wieder flott.
allerdings ersetze ich llsay mit llInstantMessage kommt dies:
error: function call mismatches type or number of arguments.
@Dae
HUHU, das hat ja viel geholfen *grinst
;) ja sorry ich weiss es halt nicht besser . Suche mir im netz verschiedene Sachen raus (Mische + verbinde sie) und bekomme vieles ans laufen . Aber leider fehlen mir "immernoch" die Kentnisse um sowas wie hier aus der Welt zu schaffen. Für den ein oder anderen ist es sicherlich ein leichtes vor allem für "Scripter" ich bin leider keiner muss also auf Hilfe hoffen ;)

thx......
 
Du musst in dem Greeter die Liste der bereits erkannten Avatare abfragen und mit den neuen im Sensor vergleichen.
Wer schon auf der liste ist, brauchst nicht gruessen.^^
 
Zuletzt bearbeitet:
so, habe mir Dae's Script hilfen mal reingezogen und bin tatsächlich soweit das die Meldung nur einmal ausgespuckt wird. solange man die Liste des counters nicht löscht. wenn ich sie lösche stehen allerdings im Chat Pro Avatar eine Einladung im Chat. das bedeutet wenn 15 Ava's da sind Spam Ohne Ende *grins. Das soll nicht sein. Das andere Klappt allerdings mitlerweile wunderbar.(Danke dae)

Bin auf Nicoletta's Vorschlag zurückgegangen, aber ich komme da nicht weiter ich weiss nicht wo ich an welcher Stelle das *ll*instant*message einsetzen muss. incl. der noch zu benötigten Befehle.

vielleicht gibt's noch nen Tip wie ich die Group Inviter meldung per IM senden kann . Ich komm nich drauf :(

Gruss Duffy
 
HI Nicoletta,
klar das habe ich schon bemerkt und bin auch auf der SEite gewesen, komme aber damit nicht klar. Ich lese da nur was raus vonwegen , wenn jemand auf ein Object klickt bekommt der Owner des Objects eine IM. So ein SCript kenne ich und funktioniert auch. Habe ebenfalls versucht daraus den teil herauszunehmen und zu ändern, weil ja der jenige der klickt die IM bekommen soll. In anbetracht das in dem Script noch ein group inviter und ein Counter ist, regnet es errors ;(.
ich werde heute Abend nochmal gucken.
 
Hi zusammen,
nochmal ich, langsam zweifel ich an meinem Verstand. Diese Scriptzeile :
Code:
  llSay(0, "/me by clicking this link\nsecondlife:///app/group/" + ((string)group_key) + "/about");
hat bis gestern den Link ausgespuckt der direkt zum Fenster führt wo man der GRuppe beitreten kann.
Seit gestern Abend macht er nur noch dies:
clicking this link
secondlife:///app/group//about
in den Chat
wieso das denn nun wieder.?

Danke für Hlfö :) Gruss Duffy
 
OkOk,
ich habe es geschafft ................... 3 scripts in eins gefasst *YEAHHHHHHHHHHHHH

Jetzt habe ich immernoch das Problem, das wenn die Gruppeneinladung rausgeht in den Chat (IM) kriege ich nicht hin. Das jeder lesen kann wenn die Gruppeneinladung rausgeht. ich hätte das gerne persönlicher. gelöst durch eine Liste . dann bekommt derjenige der schon eine hatte nicht noch eine , sieht aber die vom anderen im Chat. *grrrrrrrrrrrrrrrrrr dann muss doch das llInstantMessage her..

also bis jetzt kann mein script :
Liste erstellen , gruppeneinladung in den Chat.

vielleicht könnt ihr mir da nochmal helfen und etwas genauer erklären was ich ersetzen muss das llSAy durch llinstantMessage ok aber was noch mehr ??? Blicke den Text nicht den Nicoletta mir gezeigt hast ;(
Danke Gruss Duff
 
Hi Ihr beiden , seit echt geduldig mit mir. Also es klappt soweit ABER wieder ein neues problem mit dem gleichen Ding. Folgendes:
Code:
sensor(integer number_detected)
       {
        llLookAt (llDetectedPos(0),10,3);
        
{
        integer i;
        for(i = 0; i < number_detected; i++)
        {
            if(llDetectedKey(i) != llGetOwner())
            {
                string detected_name = llDetectedName(i);
                if(isNameOnList(detected_name) == FALSE)
                {
                    visitor_list += detected_name;
                    
                           
    llInstantMessage(llDetectedKey(0), "Hallo " +  detected_name + " Herzlich Willkommen!");
    llInstantMessage(llDetectedKey(0), "/me by clicking this link secondlife:///app/group/" + ((string)group_key) + "/about");
                
               
                    integer len = llGetListLength(visitor_list);
                    if(len > 250)
                    {
                        visitor_list = [];
Habe ich nun gemacht und YEAH Dank Euch hab ich es gerafft *lol AAAABER
ProbleM:
Wenn ich z.B mit 3 Avataren an dem Object stehe. Bekommt bei Instant Message NUR DERJENIGE EINLADUNG IM CHAT; der am NÄCHSTEN am Object steht. Also alle Einladungen auch die von den anderen drumherum. Die anderen bekommen nix.
Mache ich es mit llSay, bekommen alle die Einladung im Chat inclusive die von den anderen *schreiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii das soll ja nicht (Spam)

Liegt es jetzt am Sensor? (Muss ich die Einladung echt per llTouch machen. Oder kann ich nen Zusatz einbringen, der sagt Einladung raus an Ava 1, suche den nächsten Und Einladen Ava2 usw. =?

Krieg die Krise ;(
Danke für Euer Auge.........
Gruss Duff
 
mal den Rotstift ansetze^^

Code:
sensor(integer [B][COLOR="#FF0000"]Avatar[/COLOR][/B])
       {
        llLookAt (llDetectedPos(0),10,3);
        
{
        integer i;
        for(i = 0; i < [B][COLOR="#FF0000"]Avatar[/COLOR][/B]; i++)
        {
            [B][COLOR="#FF0000"]key Avatar = llDetectedKey(i);[/COLOR][/B]
            if([B][COLOR="#FF0000"]Avatar[/COLOR][/B] != llGetOwner())
            {
                string detected_name = llDetectedName([B][COLOR="#FF0000"]i[/COLOR][/B]);
                if(isNameOnList(detected_name) == FALSE)
                {
                    visitor_list += detected_name;
                    
                           
    llInstantMessage([B][COLOR="#FF0000"]Avatar[/COLOR][/B], "Hallo " +  detected_name + " Herzlich Willkommen! [B][COLOR="#FF0000"]\n[/COLOR][/B] by clicking this link secondlife:///app/group/" + ((string)group_key) + "/about");
                
               
                    integer len = llGetListLength(visitor_list);
                    if(len > 250)
                    {
                        visitor_list = [];

Versuche es mal so, ich geb aber keine Garantie, habs naemlich nicht getestet.

LG
Dae
 
Zuletzt bearbeitet:
huhu,

kleiner Hinweis noch mal von mir.

Mehrere Mitteilungen untereinander kann man mal machen wenn man mit Hilfe von Tools kurz etwas abfragen moechte, indem man fuer jede Information ein neues llSay(... oder llOwnerSay(... verwendet.
Das saehe in einem Script dann in etwa so aus:
Code:
llSay(0,"Textzeile fuer die erste Information");
llSay(0,"Textzeile fuer die zweite Information");
llSay(0,"Textzeile fuer die dritte Information");
llSay(0,"und so weiter...");

Sollten Informationen oder Mitteilungen regelmaessig ausgegeben werden, rate ich dringend von diesem Spam ab.
Wesentlich eleganter ist es dann alles in einem einzigen llWhisper(..., llSay(..., llShout(..., llInstantMessage(... oder wo auch immer, unter zu bringen und die einzelnen Zeilen jeweils durch ein \n mitten im Text innerhalb der Gaensefuesschen zu trennen.
Fuer die meisten Mitteilungen reicht das voellig aus, da dir fuer eine einzige Meldung "1023 bytes/single-byte characters" Limits - Second Life Wiki zur verfuegung stehen.
Das sieht in einem Script dann etwa so aus:
Code:
llSay(0,"Textzeile fuer die erste Information[COLOR="#FF0000"]\n[/COLOR]Textzeile fuer die zweite Information[COLOR="#FF0000"]\n[/COLOR]Textzeile fuer die dritte Information[COLOR="#FF0000"]\n[/COLOR]und so weiter...");
Mit dieser Variante stehen die Mitteilungen im Chat ebenfalls untereinander.

Ganz wichtig ist es darauf zu achten so wenig llInstantMessage(... zu verwenden, wie moeglich.
Der Befehl hat einen delay von 1sec. und haelt das Script fuer eine Secunde an.
Schreibst du davon mehrere untereinander summiert sich die Zeit in Secunden mit der Anzahl der Befehle.

LG
Dae
 
Hallöchen zusammen,
Manchmal bin ich froh gefragt zu haben, somit lernt man mal wieder was neues. z.B das 5 x ll Say spamt und Instant M Lag verursacht etc ........... ich versuche es anzuwenden vl fällt mir demnächst ja wiedermal was neues ein womit ich nerven kann , bzw. Eure Tips anwenden *hehe ;) *vorerst vielen dank an Euch ;)
!!!
Gruss Duff
 

Users who are viewing this thread

Zurück
Oben Unten