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

3 Avatare auf 2 Prims

Raffne Karillion

Aktiver Nutzer
Hallo Leute,

Ich habe folgendes Problem, ich würde gerne 3 Avatare auf 2 Prims sitzen lassen (Ohne Posebälle).
Nun sollen die Avatare ja nicht irgendwie da sitzen, sondern mit Animationen. Also meine Frage an die Scripter da draußen, seht Ihr eine möglichkeit wie dies zu bewerkstelligen wäre?
 
Ich denke das müsste gehen.
Wenn ein Ava sich setz wird er zum Teil des Linksets. Dementsprechnd kannst du alle drei Avas über ihre Nummer im Linkset bewegen und in die richtige Position bringen.
 
Es geht ja um eine Bank, die dann in der gegend rumsteht und deshalb müsste die Animation schon ausgerichtet sein wenn ein Avatar sich setzt.
Jedesmal neu ausrichten das wäre zuviel Arbeit:p.
 
Also möglich ist es.
Ich habe die 1Prim Bänke von MnM, da können 5 Personen drauf sitzen und die Animationen lassen sich sogar wechseln.
Ich hab aber keine Ahnung wie das funktioniert; da hab ich mir auch schon vergeblich den Kopf zerbrochen.
 
Das hinsetzen per script ist ganz einfach, ich hab das soweit, bloss die freigabe, wenn jmd aufsteht, da klemmts bei mir noch :-D
Es gibt irgendwo auch so eine eierlegende Wollmichsau von so einem Script als OpenSource. Bloss das ist halt total überladen.
 
Das hinsetzen per script ist ganz einfach, ich hab das soweit, bloss die freigabe, wenn jmd aufsteht, da klemmts bei mir noch :-D
Es gibt irgendwo auch so eine eierlegende Wollmichsau von so einem Script als OpenSource. Bloss das ist halt total überladen.

pssst...
Zahel die Avas als Prims durch und fuege sie in eine Liste.
Die linknummer die aufsteht kannst beenden.
Moeglicherweise is das der springende punkt der dir fehlt.

PS: fragt erst gar nicht, hab mich mit sowas auch noch nicht beschaeftigt.

LG
Dae
 
psst 2.....
posen und positionen in ebenfalls Listen verwalten und dann den Avataren die aktuelle Position zuordnen und somit für andere blocken, den rest dann nach gut Dünken durchgehen lassen, also z.B. per page_UP / page_DOWN oder per Dialog Menü.....
Klappt wunderbar ;)
Ich kürz es bei mir auch immer wieder zusammen wenn ich mal Zeit hab mich um mein Sitscript zu kümmern.
Es sit zur Zeit einfach noch bisserl mächtig, aber es wird besser^^
 
Ich habe ein Script gemacht, mit dem man sitzende Avatare bereits ausrichten kann.
Damit können bis zu 200 oder mehr Avatare auf einem Prim ! sitzen.
Man müsste das ganze nurnoch um Animationen erweitern, das sollte aber kein Problem sein.

Code:
list Positions = ["<0.73953, 0.84836, 0.54750>;<0.00000, 0.00000, -0.70711, 0.70711>",
                  "<-0.01971, 0.84836, 0.54750>;<0.00000, 0.00000, -0.70711, 0.70711>",
                  "<-0.72160, 0.84836, 0.54750>;<0.00000, 0.00000, -0.70711, 0.70711>",
                  "<-0.72160, -0.87112, 0.54750>;<0.00000, 0.00000, 0.70711, 0.70711>",
                  "<-0.00023, -0.87112, 0.54750>;<0.00000, 0.00000, 0.70711, 0.70711>",
                  "<0.73091, -0.87112, 0.54750>;<0.00000, 0.00000, 0.70711, 0.70711>"];

list SittingAvatars;

list GetValues(integer Index)
{
    list Tmp = llParseString2List(llList2String(Positions, Index), [";"], []);
    return [(vector)llList2String(Tmp, 0), (rotation)llList2String(Tmp, 1)];
}

list FindFreePlace()
{
    key Avatar = NULL_KEY;
    list TempSittingAvatars;
    integer i;
    integer LinkNum;
    for (i = 0; i < llGetNumberOfPrims() + 2; ++i)
    {
        if (llGetAgentSize(llGetLinkKey(i)) != ZERO_VECTOR)
         {TempSittingAvatars = TempSittingAvatars + [llGetLinkKey(i)];}
    }
    for (i = 0; i < llGetListLength(SittingAvatars); ++i)
    {
        if (llListFindList(TempSittingAvatars, [llList2Key(SittingAvatars, i)]) == -1)
         {SittingAvatars = llListReplaceList(SittingAvatars, [NULL_KEY], i, i);}
    }
    for (i = 0; i < llGetListLength(TempSittingAvatars); ++i)
    {
        if (llListFindList(SittingAvatars, [llList2Key(TempSittingAvatars, i)]) == -1)
         {Avatar = llList2Key(TempSittingAvatars, i);}
    }
    if (Avatar != NULL_KEY)
    {
        for (i = 0; i < llGetNumberOfPrims() + 2; ++i)
        {
            if (llGetLinkKey(i) == Avatar)
             {LinkNum = i;}
        }
        for (i = 0; i < llGetListLength(SittingAvatars); ++i)
        {
            if (llList2Key(SittingAvatars, i) == NULL_KEY)
            {
                SittingAvatars = llListReplaceList(SittingAvatars, [Avatar], i, i);
                return [i, LinkNum];
            }
        }
    }
    return [-1];
}


default
{
    state_entry()
    {
        llSitTarget(llList2Vector(GetValues(0), 0), llList2Rot(GetValues(0), 1));
        integer i;
        for (i = 0; i < llGetListLength(Positions); ++i)
         {SittingAvatars = SittingAvatars + [NULL_KEY];}
    }
    changed(integer Was)
    {
        if (Was & CHANGED_LINK)
        {
            list NewPos = FindFreePlace();
            if (llList2Integer(NewPos, 0) > -1)
            {
                llSetLinkPrimitiveParamsFast(llList2Integer(NewPos, 1),
                                    [PRIM_POSITION, llList2Vector(GetValues(llList2Integer(NewPos, 0)), 0) + <0, 0, 0.325>,
                                     PRIM_ROTATION, llList2Rot(GetValues(llList2Integer(NewPos, 0)), 1) / llGetRot()]);
            }
        }
    }
}
 
Tut mir leid, dass ich diesen alten Thread ausgegraben habe, aber ich denke, die Frage paßt hier rein:

Es ist schon eine Weile her, dass ich selbst mit dieser Art von Script herumgespielt und auch etliche 1-2 Prim Möbel gekauft habe, die so ein Script für mehrere Avatare enthalten.
Seit... ja keine Ahnung... Vierteljahr (?!) kann sich keine zweite Person mehr auf die Möbel setzen. Wurde da vielleicht von Lindenlabs Seite irgendwas verändert? *mit ratlosem Gesicht*
 
Habt ihr evtl. ne Sim-Surround?

Das Problem hab ich auf meiner Sim auch ;)
 
Zuletzt bearbeitet von einem Moderator:
Meistens verhindert die Bounding Box eines Megaprims (sculptie), wie von einem Sim Surround das setzen auf Prims.
Ich hatte bei mir das gleiche Problem mit meinem 750x750x250 meter Sim Surround.
Erst als ich diesen einen Prim mit einem weiteren verlinkt hatte und den Megaprim als Child auf Convex Hull bzw. NONE eingestellt habe, verschwand das problem.
Allerdings muss man bei so einer Aktion den Prim-Count (Land Impackt) im auge behalten, denn auf meinem 1 Prim Mega wurden dabei schnell mal eben 42 Prims.

LG
Dae
 
Meistens verhindert die Bounding Box eines Megaprims (sculptie), wie von einem Sim Surround das setzen auf Prims.
Ich hatte bei mir das gleiche Problem mit meinem 750x750x250 meter Sim Surround.
Erst als ich diesen einen Prim mit einem weiteren verlinkt hatte und den Megaprim als Child auf Convex Hull bzw. NONE eingestellt habe, verschwand das problem.
Allerdings muss man bei so einer Aktion den Prim-Count (Land Impackt) im auge behalten, denn auf meinem 1 Prim Mega wurden dabei schnell mal eben 42 Prims.

LG
Dae

Hab das gerade mal getestet. Funzt bei mir leider immer noch nicht -> No room to sit here, try another spot. :sad:
 

Users who are viewing this thread

Zurück
Oben Unten