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.

Hallo, Gast
Sie müssen sich registrieren bevor Sie auf unserer Seite Beiträge schreiben können.

Benutzername
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 23
» Neuestes Mitglied: Lilida
» Foren-Themen: 599
» Foren-Beiträge: 1.567

Komplettstatistiken

Aktive Themen
Red light district
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: Cheryl Furse
Gestern, 13:45
» Antworten: 3
» Ansichten: 88
Tanzball rezzen
Forum: OpenSim-Manager
Letzter Beitrag: Lilida
16.04.2024, 14:27
» Antworten: 6
» Ansichten: 484
Was ist ne Kaffestube ohn...
Forum: Kaffeestube
Letzter Beitrag: Susan
15.04.2024, 15:17
» Antworten: 0
» Ansichten: 207
Sim geht in Schlafmodus
Forum: OpenSim
Letzter Beitrag: Scarlett Candor
11.04.2024, 10:16
» Antworten: 3
» Ansichten: 441
C Programmierung und bull...
Forum: Scripting
Letzter Beitrag: Cheryl Furse
07.04.2024, 00:50
» Antworten: 2
» Ansichten: 304
Steampunk-Party mit Marlo...
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: ThunderTower
02.04.2024, 18:29
» Antworten: 0
» Ansichten: 236
ERÖFFNUNG FLORES SEA Wild...
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: ThunderTower
01.04.2024, 18:52
» Antworten: 3
» Ansichten: 315
Einladung zur SCIFI Party...
Forum: Virtual Africa
Letzter Beitrag: Cheryl Furse
31.03.2024, 13:32
» Antworten: 7
» Ansichten: 637
Das Ei ist hart
Forum: Kaffeestube
Letzter Beitrag: ThunderTower
30.03.2024, 16:38
» Antworten: 0
» Ansichten: 250
Lukas, melde dich bitte, ...
Forum: Kaffeestube
Letzter Beitrag: Tron Mcp
25.03.2024, 12:31
» Antworten: 2
» Ansichten: 307

 
  NPC Rezzer um einen NPC auf einen beliebigen Poser zu setzen
Geschrieben von: Tron Mcp - 26.01.2023, 13:25 - Forum: Scripting - Keine Antworten

NPC erstellen um ihn auf einen Poser/Sittarget zu setzten, und dauerhaft in der Sim zu halten.


Das Script dient dazu einen NPC resetfest dauerhaft zu animieren.
Die Bedienung erfolgt von einem nicht auf dem Poser sitzenden Avatar aus, oder automatisch.
Das Script enthält ein Berechtigungs System wer den NPC rezzen/löschen darf: Jeder/ Selbe Gruppe / ausgewählte Avatare deren UUID im Script eingetragen wurden.

Nach Scriptreset (z.Bsp: durch Simrestart, Inventaränderung, ...) rezzt es einer Wartezeit einen NPC automatisch sofern der Poser frei ist, und setzt diesen auf den Poser.
mit Klick auf das Prim kann der NPC gelöscht, und mit einem weiteren Klick wieder gerezzt werden.
Ist der Poser frei, so kann ihn auch ein Avatar nutzen.

Das Script erfordert OSSL Befehl Berechtigung in der Sim.
Der NPC wird im Gruppenkontext des Lands gerezzt, daher braucht die Gruppe LandZugang.
Die Beschreibung des NPC erfolgt in einer Notecard, und wird automatisch erstellt (gemäß hier im Forum Beschriebenen Artikel)

https://service-silberwelten.de/showthread.php?tid=358
Wer diesen Clon Ersteller verwendet muss die Notecard nicht einmal umbenennen.

Ansonsten muss der Namen mit .NPC anfangen gefolgt von dreistelliger Nummer und einem Leerzeichen. 
Die Syntax ist identisch mit PMAC! Beispiel: ".NPC123 Amanda String".
Der angezeigte NPC Name fängt mit der 9.Stelle an.

Der NPC kann (optional) mit einem Userprofil ausgestattet werden. Unterstützt wird Bild und Beschreibung gemäß folgender Konvetion:
Im Prim ist eine Profilfoto mit dem Namen: ".bild npcname" zu hinterlegen, das als Profilfoto im NPC Profil geladen wird.
Im Prim ist eine Notizkarte mit dem Namen: ".info npcname" zu hinterlegen, dessen Inhalt im Info Feld des Profils angezeigt wird.


Code:
// P600 PMAC ADDON NPC Rezzer V1.9       by Tron Mcp       11.2021
//
// Das Script darf nicht gegen reales Geld verkauft werden, und muss fullperm bleiben. Der Autor ist als Urheber zu nennen.
// Alle anderen Nutzungen sind erlaubt.
//
// Das Script dient dazu einen NPC resetfest dauerhaft zu animieren.
// Die Bedienung erfolgt von einem nicht auf dem Poser sitzenden Avatar aus, oder automatisch.
//
// Nach Scriptreset (z.Bsp: durch Simrestart, Inventaränderung, ...) rezzt es einer Wartezeit einen NPC automatisch sofern der Poser frei ist, und setzt diesen auf den Poser.
// mit Klick auf das Prim kann der NPC gelöscht, und mit einem weiteren Klick wieder gerezzt werden.
// Ist der Poser frei, so kann ihn auch ein Avatar nutzen.

// das Script erfordert OSSL Befehl Berechtigung in der Sim.
// Der NPC wird im Gruppenkontext des Lands gerezzt, daher braucht die Gruppe LandZugang.

// die NPC Notecard muss mit .NPC anfangen gefolgt von einem Leerzeichen.
// Die Syntax ist identisch mit PMAC! Beispiel: ".NPC123 Amanda String"
// Der angezeigte NPC Name fängt mit der 9.Stelle an

// Im Prim ist eine Profilfoto mit dem Namen: ".bild npcname" zu hinterlegen, das als Profilfoto im NPC Profil geladen wird.
// Im Prim ist eine Notizkarte mit dem Namen: ".info npcname" zu hinterlegen, dessen Inhalt im Info Feld des Profils angezeigt wird.


integer autostart = TRUE;                        // TRUE / FALSE   Soll der NPC automatisch gestartet werden? Bei Scriptreset und Sim Neustartestartet

integer debug = FALSE;                           // Entwickler Infos anzeigen

list    zugangsliste = ["b6a520ac-a468-4bc3-9e52-b509e88a8bce","18da7264-3260-4b63-8173-2a6fd7e93e33","798a6b1e-2186-4cf2-b733-460cb7132ae9"]; // UUIDS berechtigter AVAs
integer groupaccess  = FALSE;                    // TRUE ore FALSE - darf die Gruppe steuern?
integer publicaccess = FALSE;                    // TRUE ore FALSE - darf jeder steuern?
vector  sitzposition = < 0.0, 0.0, 0.8>;         // Sitzposition als Offset zum Prim
vector  schriftfarbe = <0.702, 0.0, 0.0>;        // Farbe des "dance" Primschriftzugs

////// ab hier Systemvariablen - nichts einzustellen

key     npc = NULL_KEY;         // UUID des gerezzten NPC
key     toucher;                // UUID des Operator
key     dancer;                 // UUID des Posertänzer

string  npc_name;
string  npcnotecard;
integer bereit;
integer linkzahl;               // Links leeren Posers.
integer inuse;                  // TRUE wenn Poser in Nutzung ist
integer bot;                    // TRUE wenn User eine BOT ist


integer berechtigungscheck(string clicker, integer selbegruppe)  // Zugangsberechtigung auswerten
    {
        integer zugang = FALSE;
        integer personalzugang = llGetListLength(zugangsliste);
        if (publicaccess)  { zugang = TRUE;}                     // Öffentlicher Zugang
        else if (selbegruppe && groupaccess) { zugang = TRUE;}   // Gruppen Zugang
        else if (clicker ==  llGetOwner()) { zugang = TRUE;}     // Besitzer Zugang immer erlaubt
        else if (personalzugang)                                 // Persönlicher Zugang über UUID Liste
        {
            string personal;
            do
            {  
                personal = llList2String(zugangsliste, personalzugang -1 );
                if( clicker ==  personal) { zugang = TRUE; }
                personalzugang--;
            }       
            while ( personal && (!zugang));
        }
        return zugang;
    }


integer lese_nc_name()                                              // NPC Notecard prüfen
{
    integer notecards = llGetInventoryNumber(INVENTORY_NOTECARD);   // Anzahl Notecards ermitteln
    while (notecards)                                               // Test ob Notecard vorhanden
    {
        npcnotecard = llGetInventoryName(INVENTORY_NOTECARD,notecards-1);     // Namen der 1. Notecard ermitteln
        if(debug) llSay (0,(string)npcnotecard);
        if (llSubStringIndex(npcnotecard,".NPC")==0)                // Testen ob sie eine .NPC Notecard ist
        {
            npc_name = llGetSubString(npcnotecard,8,-1);            // npc_namen ermitteln
            if(debug) llSay(0,"NPC Namen: " + npc_name );
            return(TRUE);
        }
        notecards--;
    }
    return(FALSE);
}


key npc_rezzer(key sittarget, vector npcPos)    // NPC im GRUPPENKONTEXT rezzen, damit der auf Sims geht die öffentlich gesperrt, aber für Gruppe frei ist
{
    key npctorez = osNpcCreate(npc_name, "" , npcPos, npcnotecard, 8 | OS_NPC_NOT_OWNED | OS_NPC_SENSE_AS_AGENT | OS_NPC_OBJECT_GROUP );
    osNpcSit(npctorez,sittarget,OS_NPC_SIT_NOW);
    if (llGetInventoryKey(".bild " + npc_name)) osNpcSetProfileImage(npctorez,".bild "+ npc_name);                   // Testen ob Profilbild vorhanden - dann laden
    if (llGetInventoryKey(".info " + npc_name) != (string)NULL_KEY )
    {
        string info = (string) osGetNotecard(".info " + npc_name);
        osNpcSetProfileAbout(npctorez, info);  // Testen ob Profilinfo Notecard vorhanden - dann laden
    }
    bot = TRUE;
    return npctorez;
}


key npc_killer(key npctokill)                    // NPC Löschen
{
    osNpcStand(npctokill);
    llSleep(1.0);
    osNpcRemove(npctokill);
    bot = FALSE;
    return(NULL_KEY);
}   


integer npc_alive(key npctocheck)                // Check ob der vorher gerezzte NPC noch lebt
{
    if(debug) llSay(0, "NPCgeprueft : "+ osIsNpc(npctocheck));
    return osIsNpc(npctocheck);
}


default
{
    state_entry()
    {
        linkzahl = llGetNumberOfPrims();
        bereit = lese_nc_name();
        if(bereit) { if(autostart) { llSetTimerEvent(30.0); llWhisper(0,"in 30 Sekunden wird ein NPC gerezzt"); }}
        else { llSay(0,"Keine gültige NPC Notecard gefunden"); }
    }


    changed (integer change)
    {
        if ( change & ( CHANGED_INVENTORY | CHANGED_REGION_START )) { if(bot) npc = npc_killer(npc); llSleep(1.0); llResetScript();}  // Inventory Änderung und Sim Restart abfangen
       
        if (change & CHANGED_LINK)
        {
            if(linkzahl != llGetNumberOfPrims())                    // mindestens einer hat sich gesetzt
            {
                inuse = TRUE;
                dancer = llGetLinkKey(llGetNumberOfPrims());
                bot = osIsNpc(dancer);
            }
            else                                                                   // der letzte ist aufgestanden
            {
                if(linkzahl == llGetNumberOfPrims()) inuse = FALSE;
            }
        }
    }
   
   
    touch_start(integer number)                                                     // Prim wurde geklickt
    {   
        toucher = llDetectedKey(0);
        integer gruppe = llDetectedGroup(0);
        integer access = berechtigungscheck(toucher,gruppe);                        // Berechtigung checken
       
        if(access)
        {
            if(npc_alive(npc)) { npc = npc_killer(npc); llSetTimerEvent(0);}        // Poser mit NPC besetzt -> NPC löschen und warten
            else llSetTimerEvent(0.2);                            // sofort NPC Rezzen
        }
    }
   
   
    timer()
    {
        if(linkzahl == llGetNumberOfPrims()) {npc = npc_rezzer( llGetKey(), llGetPos()); llSetTimerEvent(60);}    // wenn Poser leer, NPC rezzen
    }
}

Anwendungsfall und Abgrenzung zu andern Lösungen:

Man kann natürlich NPCs auch direkt mit dem PMAC Poser oder ähnlichen Lösungen rezzen. Dann erfolgt NPC Betreuung und Animation aus dem gleichen Script heraus.

Was bei PMC aber normal nicht geht ist eine Steuerung von "aussen", also ohne selber drauf zu sitzen.
Daher braucht ein PMAC eine 2 Personen Sitz Lösung damit sich erst ein AVA setzen kann um einen NPC zu rezzen.

Dieses Script nicht. Dieses Script benötigt nur eine simple externe Steuerung die einen AVA /oder NPC animieren kann.
Das Platzieren des NPCs erfolgt genauso wie wenn sich ein Avatar drauf setzt.

Das rezzen und löschen des NPCs erfolgt von aussen (also ohne auf dem Poser zu sitzen).
Ausserdem wird der Status des NPCs gemerkt und per watchdog Timer überwacht.
Wurde einer gerezzt und ist zum Beispiele durch Sim Neustart - oder NPC Killer gelöscht worden, so wird nach einer Wartezeit der NPC wieder gerezzt.

Ich habe schon einmal ein ähnliches Script gepostet, das jedoch einen andeern Anwendungsfall hat. In der anderen Lösung wird die Animation bereits selber durchgeführt.

Dieses Script ist also explizit dafür einen verhandenen Sit Poser zu nutzen. Beispiel wäre ein NPC Kapitän auf einer automatischen Fähre für viele Personen.

Will man hingegen einen Tankwart basteln der alleine an der Zapfsäule wartet, so ist meine andere Lösung die Richtige:
https://service-silberwelten.de/showthread.php?tid=402

Viel Spaß

Tron

Drucke diesen Beitrag

  LINUX MINT - WINE 8.0 nun Release Status
Geschrieben von: Tron Mcp - 26.01.2023, 13:00 - Forum: Linux Mint Client Betriebssystem - Keine Antworten

Wine 8.0 ist nun offiziell im Release Status freigegeben.

Die wichtigeste Neuerung ist die Unterstützung von 32Bit Windows Applikationen nun auch auf 64Bit Linux Systemen.
Bisher mussten die Bitzahlen von Windows Applikation und Linux Version übereinstimmen.

Ausserdem ist ein neuer Vulkan Treiber vorhanden, der die Grafik Performance verbessern sollte.

Details könnt ihr der Fachpresse entnehmen:

https://www.golem.de/news/open-source-wi...71454.html

Es sollten nun noch mehr Anwendungen unter WINE lauffähig sein.

Wie man es installiert habe ich hier im Forum bereits in der gleichen Rubrik beschrieben.
Hat man bereits eine ältere Version entsprechend meiner Anleitung installiert, so wird das WINE 8.0 Update automatisch im Updatemanager angeboten, und mit einem Klick + Passwort installiert.


VIel Spaß

Tron

Drucke diesen Beitrag

  ChuBelz Grid geöffnet
Geschrieben von: ChubbyLady - 23.01.2023, 00:00 - Forum: Informationen und aktuelle Meldungen - Antworten (2)

[Bild: 96507.jpg?1674414641]


chubelz-grid.de:8002:Welcome

Drucke diesen Beitrag

  Thank You/Like System ohne Funktion
Geschrieben von: ThunderTower - 22.01.2023, 15:14 - Forum: Informationen und aktuelle Meldungen - Antworten (1)

Hallo zusammen,

unser Thank You/Like System ist zur Zeit leider ohne Funktion.

Wir hoffen diesen Bug schnellstmöglich zu beheben.

LG

Lukas

Drucke diesen Beitrag

  Läuft schon: 13. Gridgeburtstag von Dorenas World
Geschrieben von: Jupiter Rowland - 18.01.2023, 22:52 - Forum: Termine und Veranstaltungen in Opensim - Antworten (1)

Das hätten wir gern schon früher angekündigt, aber von Bekanntwerden des groben Zeitplans bis nach Start der Feierwoche war das Forum down.

Jedenfalls feiert Dorenas World diese Woche den 13. Gridgeburtstag (der rein technisch am 16. Januar ist).

   

Hier der Zeitplan:

Anachron Young schrieb:
  • 16. Jan. Montag
    20:00 Uhr Eröffnung der Festwoche - DJs Klara & Xenos (Meshmatsch)
  • 17. Jan. Dienstag
    20:00 Uhr GridTalk-Party - DJ Rubeus - Club GridTalk (Gridtalk)
  • 18. Jan. Mittwoch
    20:00 Uhr Wolem Wobbit on Stage (Landing)
    anschliessend Musik von den Djs Samira & Akira aus dem Dereos-Grid
  • 19. Jan. Donnerstag
    ab 18:00 Uhr Training zum ...
    ab 19:00 Uhr Ski- & Rodel-Rennen (Wintersport)
    ab 20:00 Uhr Siegesfeier auf dem Eis - DJs Loru & Richie von ArtDestiny
    ab 22:00 Uhr Aprés-Ski - Klara & Xenos
  • 20. Jan. Freitag
    19:00 Uhr Rock-House zum 13. mit DJ Anachron (Nihilon)
  • 21. Jan. Samstag
    20:00 Uhr John Vincent van Dyke on Stage (Landing)
  • 22. Jan. Sonntag
    19:00 Uhr The Last Walz - das Abschiedskonzert von The Band in voller Länge
    Radio Rote Dora - Treffpunkt Unfassbar-Bass-Bar in Westend

Drucke diesen Beitrag

  Teleport Sitzscript
Geschrieben von: Kubwa - 17.01.2023, 16:40 - Forum: Scripting - Keine Antworten

Der Soul Bürgermeister, Tailor, wollte heute ein Script haben, das seine Besucher ohne echten Teleport an ein bestimmtes Ziel katapultiert.

Legt das Script in ein Objekt und packt in die Objektbeschreibung die Zielkoordinaten als Vector (<x, y, z> -> <20, 10, 200>) rein. Dann wird der klickende Avatar an diese Zielkoordinaten "teleportiert".

Code:
/*
    _  __    _
    | |/ /  _| |____      ____ _ ©
    | ' / | | | '_ \ \ /\ / / _` |
    | . \ |_| | |_) \ V  V / (_| |
    |_|\_\__,_|_.__/ \_/\_/ \__,_|
                  Hyper-Muscledog
    Script ©Kubwa | https://kubwa.dog
    Mail: Script@Kubwa.dog
    This header MUST be kept intact in any changes and reshares of this script.
    You are allowed to use parts of this script in your own creations but you
    need to place this header into your new creations to keep credit to the
    original creator Kubwa.
*/
/*
    Zielkoordinaten als Vector in die Objektbeschreibung eintragen
    Beispiel: <x, y, z> -> <20, 300, 10>
*/
default
{
    touch_start(integer dummy)
    {
        llSitTarget(((vector)llGetObjectDesc() - llGetPos()) / llGetRot(), ZERO_ROTATION);
        osForceOtherSit(llDetectedKey(0));
        llSleep(0.5);
        llUnSit(llDetectedKey(0));
    }
}

Drucke diesen Beitrag

  Simplen Fail2Ban für Remote Desktop
Geschrieben von: Kubwa - 17.01.2023, 16:37 - Forum: Sicherheitssoftware und Hersteller - Antworten (4)

Hallöle,

ich habe vor ein paar Wochen eine einfache Möglichkeit gesucht, Remotedesktop abzusichern und ein Fail2Ban dafür zu nutzen.
Fail2Ban hält Ausschau nach häufigen, fehlerhaften Loginversuchen von einer IP. Versucht diese IP zu oft in zu kurzer Zeit einzuloggen und wird dabei immer wegen einem falschen Passwort oder so abgelehnt, wird die IP temporär oder permanent gebant.

Dabei bin ich über die folgende Software gestolpert: https://github.com/devnulli/EvlWatcher
Es handelt sich dabei um eine kleine opensource Software, die dieses Fail2Ban übernimmt. Die Bedienung ist recht simpel: Installieren und fertig. Es läuft alles direkt und ist bereits vorkonfiguriert.

Drucke diesen Beitrag

  Positives Feedback und zahlreiche Anfragen
Geschrieben von: ThunderTower - 17.01.2023, 15:12 - Forum: Informationen und aktuelle Meldungen - Keine Antworten

Hallo zusammen,

auf Grund von positivem Feedback und zahlreichen Anfragen bezüglich Forum:

Selbiges wurde aktiviert!

Mit freundlichen Grüßen

Lukas

Drucke diesen Beitrag

  Silvester im Ballroom mit Abendkleidung
Geschrieben von: Bella Diesel - 30.12.2022, 22:47 - Forum: Informationen und aktuelle Meldungen - Keine Antworten

Wir feiern Silvester,  in einem wunderschönen Ballroom und Feuerwerk um Mitternacht .. Abendkleidung erwünscht .. mit buntem Mix aus allen Jahrzenten spielen wir für Euch die beste Musik zum Jahreswechsel Beginn 20 Uhr .. stündlicher Musik Wechsel mit Djane Bella u Dj Genie

Taxi :   offworld.eu:8002:Circle of Music



Angehängte Dateien Thumbnail(s)
   
Drucke diesen Beitrag

  !HAPPY NEW YEAR!
Geschrieben von: ThunderTower - 30.12.2022, 13:58 - Forum: Informationen und aktuelle Meldungen - Antworten (5)

   



Maria und Lukas wünschen allen Freunden und Lieblingsmenschen ein GUTES NEUES JAHR 2023!
Ein besonderes Dankeschön an alle Leser, Autoren und allen die sich hier im Forum aktiv beteiligt haben.
M&L

Drucke diesen Beitrag