Silberwelten Forum

Normale Version: NPC Killer Script um marodierende NPCs zu löschen, von Aine Caolmhe
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
NPC Killer Script um marodierende NPCS zu löschen.


Dieses Script ist das Original von Aine Caolmhe.

Es hilft einen NPCs zu löschen die unkontrolliert auf der Sim vagabundieren.

Dies pasiert zum Beispiel wenn das Script das den NPC gerezzt hat, und kontrolliert, resettet wird ohne vorher den NPC zu löschen.
Das kann man (je nach Rezzscript) zwar auch mit einem SIM Neustart beheben.

Viel schlimmer ist aber der Fall das das Rezzscript unentwegt neue NPCs rezzt weil die vorangegangenen sich nicht auf den Sitzposer gesetzt haben.
Dies kommt zum Beispiel vor wenn die "alte" NPC Rezz Befehls Syntax genutzt wird die die NPCs nicht im Gruppenkontext rezzt, und gelichzeitig die Sim für "public" gesperrt wird.

So kann in wenigen Minuten die Sim so stark gefüllt werden das man als Admin nicht mal mehr rauf kommt um den Rezzer einhalt zu gebieten.
Das ist mir auch schon mehrfach pasiert.

Da hilft dann diesen NPC Killer an den Ava auf einer anderen Sim anzuziehen, und sich TP bereit zu machen.
Dann die marode Sim restarten, und sofort wenn sie da ist rüber teleportieren . Und mehrfach diesen NPC Killer berühren.
So kann man die Anzahl gerezzter NPCs minimieren, bis man Scripte auf der Sim stoppt, und den Fehler behebt.

Ebenso kann diese NPC Killer bei Events helfen, wenn die Sim wegen Überlastung Probleme bekommt.



ANWENDUNG:


Das Script wird in ein Prim gelegt, und wartet auf eine Berührung.
Dann legt es los, holt sich die Avatarliste der Sim und versucht alle Avatar UUIDs mit dem OSSL - NPC Kill Befehl zu löschen.

Man könnte es heute zwar etwas verbessern und vorab checken ob die UUID einem Avatar oder einem NPC gehört,
aber das Script läuft auch so schon jahrelang zuverlässig. Daher belasse ich es im Original.

Als dieses Script erstellt wurde gab es noch nicht den OSSL Befehl einen Avatareintrag auf NPC zu testen.


Code:
// P605 Hedone NPC Killer
// by Aine Caolmhe Jan 2013
//
// This script is full perm and may be used and altered in any way you wish
//
// Place in any prim, then click the prim to kill all NPCs in the current region
// OSSL functions osGetAvatarList and osNpcRemove must be enabled in the region

default
{
    state_entry()
    {
        llSay(0, "NPC Killer ready - touch me to remove all NPCs from your region");
    }
    
    
    touch_start(integer num)
    {
        list agentList=osGetAvatarList();
        integer listLength=llGetListLength(agentList);
        integer i;
        
        while (i<listLength)
        {
            osNpcRemove(llList2Key(agentList,i));
            i+=3;
        }
        llOwnerSay("All NPCs should now be dead");
    }
}


Einen herzlichen Dank meinerseits an Aine Caolmhe für diese guten Scripte in der Opensim Anfangszeit.
Thank you so much Aine, for supporting Opensim from the beginning with this helpful scripts.


Tron