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)
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
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;
}
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.
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.
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.
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
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".
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.
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