This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

AVA und BOT Erkennung auf der Sim
#1
Makro zur Erkennung ob sich AVAs auf der Sim aufhalten


Manche Funktionen der Sim sollen nur aktiv werden wenn sich ein Ava darauf befindet.
Dies habe ich angewendet um Surfwellen zu stoppen wenn keiner mehr auf der Sim ist. 

Da ich aber auf der Sim Bots gerezzt habe brauche ich eine Funktion die Avas von Bots unterscheidet.

Dieses leistet das die folgende Funktion:

Sie gibt TRUE zurück wenn ein Ava gefunden wurde.
Ansonsten gibt sie FALSE zurück.


Code:
// Meldet nur Avas, aber nicht Bots zurück
integer avacheck()
{
    integer laufvar;
    key avakey;
    integer bot;
    vector pos =  llGetPos();
    list avatarliste = llGetAgentList(AGENT_LIST_PARCEL, []); // Liste der Avatare in der Sim holen
    for (laufvar = 0; laufvar <= llGetListLength(avatarliste); laufvar++)
    {
        avakey = llList2Key(avatarliste, laufvar);
        bot = osIsNpc(avakey);
        if(!bot) { return (TRUE);}
    }
    return (FALSE);
}



Anwendungs Beispiel:


Code:
// By Tron Mcp 2021 Creative Common 1.1

// Meldet nur Avas, aber nicht Bots zurück
integer avacheck()
{
    integer laufvar;
    key avakey;
    integer bot;
    vector pos =  llGetPos();
    list avatarliste = llGetAgentList(AGENT_LIST_PARCEL, []); // Liste der Avatare in der Sim holen
    for (laufvar = 0; laufvar <= llGetListLength(avatarliste); laufvar++)
    {
        avakey = llList2Key(avatarliste, laufvar);
        bot = osIsNpc(avakey);
        if(bot) { llSay(0,"bot gefunden "+avakey);}
        else { return (TRUE); }
    }
    return (FALSE);
}


default
{
    state_entry()
    {      
        integer wer_da = avacheck();
       
        if (wer_da) llSay(0, "Ava auf Sim gefunden");
        else llSay(0, "Keiner da");
    }
}

Aktualisiert auf Stand 12-2023.


Viel Spaß

Tron
Zitieren


Gehe zu:


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