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: 602
» Foren-Beiträge: 1.578

Komplettstatistiken

Aktive Themen
Red light district
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: Cheryl Furse
01.05.2024, 02:05
» Antworten: 9
» Ansichten: 405
Kritische Backdoor in XZ ...
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: ThunderTower
29.04.2024, 13:37
» Antworten: 0
» Ansichten: 54
AI text/image to mesh
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: Cheryl Furse
28.04.2024, 16:37
» Antworten: 0
» Ansichten: 55
Promo Couple Walk
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: Cheryl Furse
25.04.2024, 11:42
» Antworten: 0
» Ansichten: 76
Sim geht in Schlafmodus
Forum: OpenSim
Letzter Beitrag: ThunderTower
21.04.2024, 12:31
» Antworten: 5
» Ansichten: 649
Tanzball rezzen
Forum: OpenSim-Manager
Letzter Beitrag: Lilida
16.04.2024, 14:27
» Antworten: 6
» Ansichten: 578
Was ist ne Kaffestube ohn...
Forum: Kaffeestube
Letzter Beitrag: Susan
15.04.2024, 15:17
» Antworten: 0
» Ansichten: 334
C Programmierung und bull...
Forum: Scripting
Letzter Beitrag: Cheryl Furse
07.04.2024, 00:50
» Antworten: 2
» Ansichten: 415
Steampunk-Party mit Marlo...
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: ThunderTower
02.04.2024, 18:29
» Antworten: 0
» Ansichten: 256
ERÖFFNUNG FLORES SEA Wild...
Forum: Informationen und aktuelle Meldungen
Letzter Beitrag: ThunderTower
01.04.2024, 18:52
» Antworten: 3
» Ansichten: 367

 
  Open-Talk
Geschrieben von: chrissy coage - 04.12.2021, 08:55 - Forum: Termine und Veranstaltungen in Opensim - Antworten (4)

Das nächste Treffen findet am 07.12 2021 im Germanworldgrid  statt..
Der Open-Talk startet ab 20.00Uhr.
Taxi >>>>    germanworldgrid.de:8002:GWG Winter Magic
 Teamspeak wird von Moonrose genutzt.

Drucke diesen Beitrag

  Frohe Weihnachten und ein gutes neues Jahr!
Geschrieben von: ThunderTower - 02.12.2021, 12:55 - Forum: Kaffeestube - Antworten (1)

Wir wünschen eine besinnliche
Weihnachtszeit, erholsame
Feiertage und einen gesunden Start
in ein neues erfolgreiches Jahr
2022!
Maria & Lukas
   

Drucke diesen Beitrag

  Neues aus dem Soul Grid
Geschrieben von: Rudi Bakerly - 28.11.2021, 10:27 - Forum: Informationen und aktuelle Meldungen - Antworten (2)

Wir sind normalerweise nicht so aktiv in den diversen Foren.

Aber hier und da werden wir gerne Gegebenheiten aus unserem Grid mit euch teilen.

Wir starten jedoch mit einem Wunsch , der uns am Herzen liegt.

Habt alle einen schönen und besinnlichen ersten Advent im Kreise unserer Lieben.

In dieser Zeit ist es ganz besonders wichtig sich auf die schönen Dinge zu besinnen .

Alles Gute Nasti und Rudi

   

Drucke diesen Beitrag

  Herzlich Willkommen
Geschrieben von: ThunderTower - 27.11.2021, 13:41 - Forum: Informationen und aktuelle Meldungen - Keine Antworten

Willkommen Bad Teller in unserem gemeinsamen Forum. Prima, dass Du uns gefunden hast.

Im Namen aller, darf ich Dich recht herzlich im Forum begrüßen!

Schön, dass du dich für eine wertschätzende Korrespondenz mit vielen unterschiedlichen Lerninhalten interessierst.

Wir wünschen Dir (entspricht unserem Grundsatz) bei uns eine angenehme, interessante und stets höfliche virtuelle Kommunikation.

Vielen Dank!


Das Foren-Team

Drucke diesen Beitrag

  Netzwerkauslastung auf meinem Linux 20.4.3 LTS Server auswerten
Geschrieben von: ThunderTower - 27.11.2021, 12:36 - Forum: Serversoftware - Keine Antworten

Netzwerkauslastung auf meinem Linux 20.4.3 LTS Server auswerten


   

In OpenSim fallen nicht selten große Datenmengen an. Stimmt's?

Eine mögliche illegale Bereicherung an diesen Daten darf nicht sein.

Es lohnt also immer eine Kontrolle der Netzwerkkarte vom Server selbst.

Es soll der Traffic und die Netzwerkauslastung analysiert werden.

Insofern diese Daten erheblich von der eigenen Kopfrechnung abweichen, kann man von einem gezielten Einbruch oder falsch gesetzten Dateirechten ausgehen.

Dieses System incl. (Client's) ist nicht mehr vertrauenswürdig. Alles platt machen, Datensicherung und System frisch aufsetzen sind die Folge.


Los geht's:


sudo apt-get update

sudo apt-get upgrade

sudo apt-get install vnstat

konfiguration ansehen oder anpassen:

sudo nano /etc/vnstat.conf

Aufrufen:

sudo vnstat


   

Drucke diesen Beitrag

  Fehlende Datenbanktabellen für OpenSim (Gruppenfunktion) manuell nachinstallieren
Geschrieben von: ThunderTower - 16.11.2021, 17:57 - Forum: SQL Server und Datenbanken - Keine Antworten

Probleme bei der Erstellung von Gruppen können bei fehlenden Tabellen innerhalb der Datenbank auftreten.

Fehlende Datenbanktabellen für OpenSim (Gruppenfunktion) manuell nachinstallieren.

Folgende Tabellen manuell hinzufügen:

  • CREATE TABLE os_groups_groups
  • CREATE TABLE os_groups_membership
  • CREATE TABLE os_groups_roles
  • CREATE TABLE os_groups_rolemembership
  • CREATE TABLE os_groups_invites
  • CREATE TABLE os_groups_notices
  • CREATE TABLE os_groups_principals

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 25

Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)

Copyright © 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database          |
+--------------------+
| information_schema   
| mysql                          
| onmaus1  - Datenbank                    
| mausi2                       
| erna3                         
| performance_schema 
| sys                               
+--------------------+
7 rows in set (0.01 sec)

mysql> use onmaus1;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW TABLES;

+-------------------+
| Tables_in_onmaus1 |
+-------------------+
| Avatars         
| Friends         
| GridUser         
| Presence         
| UserAccounts     
| assets           
| auth             
| bakedterrain     
| classifieds     
| estate_groups   
| estate_managers 
| estate_map       
| estate_settings 
| estate_users     
| estateban       
| hg_traveling_data
| im_offline       
| inventoryfolders 
| inventoryitems   
| land             
| landaccesslist   
| migrations  <-------------------------SELECT * FROM       
| primitems       
| prims           
| primshapes       
| regionban       
| regionenvironment
| regionextra     
| regions         
| regionsettings   
| regionwindlight 
| spawn_points     
| terrain         
| tokens           
| userdata         
| usernotes       
| userpicks       
| userprofile     
| usersettings     
+-------------------+
39 rows in set (0.00 sec)

mysql> select * from migrations;

+-----------------+---------+
| name            | version |
+-----------------+---------+
| migrations              1
| RegionStore          58
| EstateStore           35
| IM_Store               5
| UserAccount         6
| GridStore              10
| AssetStore            10
| AuthStore              4
| GridUserStore       2
| InventoryStore       7
| Avatar                    3
| Presence               4
| os_groups_Store  3
| UserProfiles          5
| HGTravelStore      2
| FriendsStore         4
+-----------------+---------+

16 rows in set (0.00 sec)

Tabellen anlegen:

mysql> CREATE TABLE `os_groups_groups` (
    ->  `GroupID` char(36) NOT NULL default '',
    ->  `Location` varchar(255) NOT NULL default '',
    ->  `Name` varchar(255) CHARACTER SET utf8 NOT NULL default '',
    ->  `Charter` text CHARACTER SET utf8 NOT NULL,
    ->  `InsigniaID` char(36) NOT NULL default '',
    ->  `FounderID` char(36) NOT NULL default '',
    ->  `MembershipFee` int(11) NOT NULL default '0',
    ->  `OpenEnrollment` varchar(255) NOT NULL default '',
    ->  `ShowInList` int(4) NOT NULL default '0',
    ->  `AllowPublish` int(4) NOT NULL default '0',
    ->  `MaturePublish` int(4) NOT NULL default '0',
    ->  `OwnerRoleID` char(36) NOT NULL default '',
    ->  PRIMARY KEY  (`GroupID`),
    ->  UNIQUE KEY `Name` (`Name`),
    ->  FULLTEXT KEY `Name_2` (`Name`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected, 6 warnings (4.52 sec)

mysql> CREATE TABLE `os_groups_membership` (
    ->  `GroupID`char(36) NOT NULL default '',
    ->  `PrincipalID` VARCHAR(255) NOT NULL default '',
    ->  `SelectedRoleID` char(36) NOT NULL default '',
    ->  `Contribution` int(11) NOT NULL default '0',
    ->  `ListInProfile` int(4) NOT NULL default '1',
    ->  `AcceptNotices` int(4) NOT NULL default '1',
    ->  `AccessToken` char(36) NOT NULL default '',
    ->  PRIMARY KEY  (`GroupID`,`PrincipalID`),
    ->  KEY `PrincipalID` (`PrincipalID`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected, 3 warnings (1.21 sec)

mysql> CREATE TABLE `os_groups_roles` (
    ->  `GroupID` char(36) NOT NULL default '',
    ->  `RoleID` char(36) NOT NULL default '',
    ->  `Name` varchar(255)  CHARACTER SET utf8 NOT NULL default '',
    ->  `Description` varchar(255) CHARACTER SET utf8 NOT NULL default '',
    ->  `Title` varchar(255) CHARACTER SET utf8 NOT NULL default '',
    ->  `Powers` bigint(20) unsigned NOT NULL default '0',
    ->  PRIMARY KEY  (`GroupID`,`RoleID`),
    ->  KEY `GroupID` (`GroupID`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected, 4 warnings (1.19 sec)

mysql> CREATE TABLE `os_groups_rolemembership` (
    ->  `GroupID` char(36) NOT NULL default '',
    ->  `RoleID` char(36) NOT NULL default '',
    ->  `PrincipalID` VARCHAR(255) NOT NULL default '',
    ->  PRIMARY KEY  (`GroupID`,`RoleID`,`PrincipalID`),
    ->  KEY `PrincipalID` (`PrincipalID`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (1.17 sec)

mysql> CREATE TABLE `os_groups_invites` (
    ->  `InviteID` char(36) NOT NULL default '',
    ->  `GroupID` char(36) NOT NULL default '',
    ->  `RoleID` char(36) NOT NULL default '',
    ->  `PrincipalID` VARCHAR(255) NOT NULL default '',
    ->  `TMStamp` timestamp NOT NULL,
    ->  PRIMARY KEY  (`InviteID`),
    ->  UNIQUE KEY `PrincipalGroup` (`GroupID`,`PrincipalID`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (1.11 sec)

mysql> CREATE TABLE `os_groups_notices` (
    ->  `GroupID` char(36) NOT NULL default '',
    ->  `NoticeID` char(36) NOT NULL default '',
    ->  `TMStamp` int(10) unsigned NOT NULL default '0',
    ->  `FromName` varchar(255) NOT NULL default '',
    ->  `Subject` varchar(255) CHARACTER SET utf8 NOT NULL default '',
    ->  `Message` text CHARACTER SET utf8 NOT NULL,
    ->  `HasAttachment` int(4) NOT NULL default '0',
    ->  `AttachmentType` int(4) NOT NULL default '0',
    ->  `AttachmentName` varchar(128) NOT NULL default '',
    ->  `AttachmentItemID` char(36) NOT NULL default '',
    ->  `AttachmentOwnerID` varchar(255) NOT NULL default '',
    ->  PRIMARY KEY  (`NoticeID`),
    ->  KEY  `GroupID` (`GroupID`),
    ->  KEY `TMStamp` (`TMStamp`)
    -> ) ENGINE=InnoDB  DEFAULT CHARSET=latin1;
Query OK, 0 rows affected, 5 warnings (0.98 sec)

mysql> CREATE TABLE `os_groups_principals` (
    ->  `PrincipalID` VARCHAR(255) NOT NULL default '',
    ->  `ActiveGroupID` char(36) NOT NULL default '',
    ->  PRIMARY KEY  (`PrincipalID`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (1.03 sec)

mysql> ALTER TABLE `os_groups_invites`
    ->
    -> MODIFY `TMStamp` timestamp NOT NULL default CURRENT_TIMESTAMP;

Query OK, 0 rows affected (0.14 sec)

Records: 0  Duplicates: 0  Warnings: 0

Kontrolle:

mysql> show tables;

+--------------------------+
| Tables_in_onmaus1        |
+--------------------------+
| Avatars                  |
| Friends                  |
| GridUser                |
| Presence                |
| UserAccounts            |
| assets                  |
| auth                    |
| bakedterrain            |
| classifieds              |
| estate_groups            |
| estate_managers          |
| estate_map              |
| estate_settings          |
| estate_users            |
| estateban                |
| hg_traveling_data        |
| im_offline              |
| inventoryfolders        |
| inventoryitems          |
| land                    |
| landaccesslist          |
| migrations              |
| os_groups_groups        |
| os_groups_invites        |
| os_groups_membership    |
| os_groups_notices        |
| os_groups_principals    |
| os_groups_rolemembership |
| os_groups_roles          |
| primitems                |
| prims                    |
| primshapes              |
| regionban                |
| regionenvironment        |
| regionextra              |
| regions                  |
| regionsettings          |
| regionwindlight          |
| spawn_points            |
| terrain                  |
| tokens                  |
| userdata                |
| usernotes                |
| userpicks                |
| userprofile              |
| usersettings            |
+--------------------------+
46 rows in set (0.01 sec)

mysql> exit

Bye

Drucke diesen Beitrag

  Abschaltung verschiedener PHP-Funktionen auf Ubuntu 20.04.3 LTS mit PHP 7.4.3
Geschrieben von: ThunderTower - 10.11.2021, 16:25 - Forum: Serversoftware - Keine Antworten

Abschaltung verschiedener PHP-Funktionen auf Ubuntu 20.04.3 LTS mit PHP 7.4.3

Einige PHP- Funktionen lassen sich mit der 'disable_functions =' in der php.ini aus Sicherheitsgründen ausschalten.

Ich nutze auf meinem Ubuntu 20.04.3 LTS die PHP Version PHP 7.4.3.

Die Abschaltung verschiedener Funktionen von PHP soll die Sicherheit vom Server weiter erhöhen.

Diese Funktion 'disable_functions =' in der php.ini wird den Angreifer in seinen Möglichkeiten möglicherweise einschränken.

Welches Linux?

sniper@honigbiene:~# lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal


PHP Version abfragen:

sniper@honigbiene:~$ php -v

PHP 7.4.3 (cli) (built: Oct 25 2021 18:20:54) ( NTS )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
with Zend OPcache v7.4.3, Copyright ©, by Zend Technologies

Wo ist die php.ini Datei?


sudo find / -name php.ini

Ausgabe:

/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini


sniper@ghonigbiene:~$

Diese Datei öffnen und editieren:

sudo nano /etc/php/7.4/apache2/php.ini

Funktionen in der php.ini abschalten:

disable_functions =

Code:

Code:
disable_functions = "exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,mail,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,
pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare"


exec,- Führt ein externes Programm aus

passthru, - Führt ein externes Programm aus und zeigt dessen Ausgabe an

shell_exec, - Führt einen Befehl auf der Shell aus und liefert die komplette Ausgabe als String

system, - Führt ein externes Programm aus und zeigt dessen Ausgabe an

proc_open,  - Execute a command and open file pointers for input/output

popen, - Opens process file pointer

curl_exec, - Perform a cURL session

curl_multi_exec, - Run the sub-connections of the current cURL handle

parse_ini_file, - Parse a configuration file

show_source, - Alias of highlight_file()

mail, - Mailfunktionen senden

pcntl_alarm, - Set an alarm clock for delivery of a signal

pcntl_fork, - Forks the currently running process

pcntl_waitpid, - Waits on or returns the status of a forked child

pcntl_wait, - Waits on or returns the status of a forked child

pcntl_wifexited, - Checks if status code represents a normal exit

pcntl_wifstopped, - Checks whether the child process is currently stopped

pcntl_wifsignaled, - Checks whether the status code represents a termination due to a signal

pcntl_wifcontinued, - nicht gefunden!

pcntl_wexitstatus, - Lefert den Statuscode

pcntl_wtermsig, - Returns the signal which caused the child to terminate

pcntl_wstopsig,  - Gibt das Signal zurück, welches das Anhalten verursachte

pcntl_signal,  - Richtet eine Signalverarbeitung ein

pcntl_signal_get_handler, - Get the current handler for specified signal

pcntl_signal_dispatch, - Calls signal handlers for pending signals

pcntl_get_last_error, - Retrieve the error number set by the last pcntl function which failed

pcntl_strerror, - Retrieve the system error message associated with the given errno

pcntl_sigprocmask, - Sets and retrieves blocked signals

pcntl_sigwaitinfo, - Waits for signals

pcntl_sigtimedwait, - Waits for signals, with a timeout

pcntl_exec, - Executes specified program in current process space

pcntl_getpriority, - Get the priority of any process

pcntl_setpriority, - Change the priority of any process

pcntl_async_signals,- Enable/disable asynchronous signal handling or return the old setting



Überprüfen:

Pfad:

root@honigbiene:~# cd /var/www/html


Datei erstellen:

root@honigbiene:/var/www/html# touch info.php


Code eintragen und abspeichern:

Code:
<?php
    phpinfo();
?>


Aufrufen:

http://server-ip:port/info.php

   

Drucke diesen Beitrag

  OSSL BEFEHLE zur NPC ANIMATION
Geschrieben von: Tron Mcp - 09.11.2021, 20:24 - Forum: Scripting - Keine Antworten

OSSL BEFEHLE zur NPC ANIMATION

Dieser Artikel ist Teil einer Serie von OSSL Befehlen zur NPC Nutzung in Openim.
Ich habe die Befehle Thematisch gegliedert:

Hier die Befehle zur NPC Animation:

osNpcPlayAnimation, osNpcStopAnimation, osNpcSit, osNpcStand, osNpcTouch


Zunächst ein Wort vorab.

NPCs können auf verschiedenen Arten animiert werden.
NPCs lassen sich auch über Avatar Animations-Befehle (auf Posern) animieren.

Alle Möglichkeiten die Avataren zur Verfügung stehen (mittels Poser, Fahrzeugen, etc) sind verfügbar, werden hier aber nicht beschrieben.
Allerdings unterliegen NPCs Einschränkungen gegenüber Avataren: Sie können nicht über Simgrenzen bewegt werden!!! (Stand 11.2021).
Zudem können sie keine Dinge per Attach anziehen. Beispielsweise einen Besen beim Start einer Kehr Animation in die Hand anziehen geht nur beim Avatar.
Beim NPC benötigt man dafür eine weitere Appearance Notecard bei der der Besen bei der Erstellung angezogen war. dann werden die „Erscheinungen“ ausgetauscht.

Will man die NPCs jedoch nicht in Abhängigkeit von Sitzen auf Posern animieren so dienen folgende Befehle:

Dies entsprechen teilweise der bei Avataren per Tastatur Eingabe ausgelösten Bewegungen (sitzen, aufstehen, etwas berühren).






Animation eines NPCs starten

osNpcPlayAnimation(key npc, string animation)

Plays animation on the NPC identified by their key.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Spielt eine Animation an dem NPC ab (sofern die Priorität der neuen Animation höher als die der Alten ist).
Da mehre Animationen additiv abgespielt werden können, ist auf Überlappung und Priorität zu achten.
Bereits laufende Animationen die nicht mehr benötigt werden, sind mit osNPCStopAnimation zu stoppen.
Ob die alte Animation vor Start der Neuen gestoppt wird, oder danach ist abhängig vom Einsatz.

Beide Methoden haben ihre Vor- und Nachteile:
Zuerst Stoppen, dann Starten geht zuverlässig, aber es kann dazwischen Rucken oder Unterbrechung in der Bewegung geben.
Umgekehrt ist die Funktion Prioritäts abhängiger.

Beispiel:
osNpcPlayAnimation(npc, animation);






Animation eines NPCs stoppen

osNpcStopAnimation(key npc, string animation)

Stops an animation that is being played by the NPC identified by their key.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Stoppt eine laufende Animation. Dazu muss die Animation bekannt sein. Es gibt Standard Animationen mit den Namen „sit“ wenn man sich auf ein Sittarget setzt. Und „stand“ wenn man aufgestanden ist.

Beispiel:
osNpcStopAnimation(npc, animation);







NPC auf Sitz (sit target) / Objekt setzten


osNpcSit(key npc, key target, integer options)

Makes an NPC sit on an object.
Options - OS_NPC_SIT_NOW. Makes the npc instantly sit on the prim if possible.
This is the only option available and is currently always on no matter what is actually specified in the options field
If the prim has a sit target then sit always succeeds no matter the distance between the NPC and the prim.
If the prim has no sit target then
If the prim is within 10 meters of the NPC then the sit will always succeed.
At OpenSimulator 0.7.5 and later, if the prim is further than 10 meters away then nothing will happen.
Before OpenSimulator 0.7.5, if the prim is further than 10 meters away then the avatar will attempt to walk over to the prim but will not sit when it reaches it.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Dient dazu den Avatar auf ein Objekt mit/ohne Sit Target zu setzten, zum Beispiel auf einen Poser.

- key ist der Key/UUID des NPCs.
- target ist die UUID des Objektes auf das sich gesetzt werden soll.
- options ist aktuell nur „OS_NPC_SIT_NOW“ verfügbar.
- Laut Beschreibung ist der Erfolg des Sitzbefehls abhängig von der Distanz zum Objekt auf das gesetzt werden soll, wenn nicht per Script Befehl ein explizites Sit Target ausgewiesen wurde.

Beispiel:
llSitTarget(<0.3, 0.0, 0.55>, ZERO_ROTATION);
osNpcSit(npc, llGetKey(), OS_NPC_SIT_NOW);

Anmerkung:
Mit llGetKey() wird die eigene UUID des Prims ermittelt in dem das Script untergebracht ist.
Somit setzt sich der NPC auf das Objekt das dieses Script enthält.

Faktisch wird der NPC ein Child Prim mit der größten Linknummer des Objektes auf dem es sich hinsetzt.
Zusätzlich wird die Basisanimation „stand“ beendet und „sit“ gespielt.







NPC von Sitz (sit target)/ Objekt aufstehen lassen

osNpcStand(key npc)

Makes a sitting NPC stand up.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Der NPC mit der UUID/key "npc" steht auf.

Faktisch wird die Verlinkung mit dem Sit Prim aufgehoben, und der NPC wieder ein eigenständiges Objekt.
Zusätzlich wird die Basisanimation „sit“ beendet und „stand“ gespielt.

Beispiel:     osNpcStand(npc);







Einen NPC ein Objekt berühren lassen


osNpcTouch(key npcKey, key objectKey, integer linkNum)

Only LINK_THIS and LINK_ROOT are valid for this function. Any other of the LINK_* constants will be ignored and no touch takes place.
1. If linkNum is LINK_THIS then the prim with the key objectKey will be touched.
2. If linkNum is LINK_ROOT or 0 then the root prim of the link set will be touched, even if the root prim key is not objectKey
3. For any other value of linkNum a search will be made through the linkset for a prim with that link number. If found that prim will be touched. If no prim is found for that link number the function fails silently and no touch takes place.
The touch is fired as if it came from an old client that does not support face touch detection or (probably) one of the text clients like Metabolt. Since there is no mouse the llDetectedTouch* functions will return the defaults (See the LSL Wiki for full details)
llDetectedTouchBinormal TOUCH_INVALID_VECTOR
llDetectedTouchFace TOUCH_INVALID_FACE
llDetectedTouchNormal TOUCH_INVALID_VECTOR
llDetectedTouchPos TOUCH_INVALID_VECTOR
llDetectedTouchST TOUCH_INVALID_TEXCOORD
llDetectedTouchUV TOUCH_INVALID_TEXCOORD
If the prim is not found or would not allow a normal client to touch it then this function fails silently.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Der mit npcKey beschriebene NPC , berührt das Objekt objectKey an der angegebenen Linknummer linkNum.

Parameter Beschreibung:

key npcKey       =  Key/UUID des NPCs
key objectKey   =  Key/UUID des Objektes das berührt werden soll.
integer linkNum =  Linknummer des mit objectKey beschriebenen Objektes das berührt werden soll.

als Eingabe für Linknummer kann neben der Echten Linknummer auch folgendes angegeben werden:
- "LINK_THIS"  :  das Prim in dem dieses Script sich befindet
- "LINK_ROOT" : das Root Prim des Objektes in dem sich dieses Script (eventuell im Sub Prim) befindet

Beispiel:     osNpcTouch(npc, llGetKey(), LINK_THIS);

Die Berührung wird die Touch Events triggern das per Script in dem angefassten Objekt wiederum ausgewertet werden kann.
Beispiel: der NPC fasst einen Türe an: 

In der Türe findet sich dann etwas in dieser Art:

    touch_start(integer number)
    {
        {
            llSay(0,“Wer klopft da draussen und will rein?“);
        }
    }








Weitere Befehle sind in anderen Artikeln behandelt um die Übersichtlichkeit zu wahren.
Die Original Infos in Englisch findet ihr hier:

http://opensimulator.org/wiki/Scripting_Documentation

Drucke diesen Beitrag

  OSSL BEFEHLE zur NPC BEWEGUNG
Geschrieben von: Tron Mcp - 09.11.2021, 20:03 - Forum: Scripting - Keine Antworten

OSSL BEFEHLE zur NPC BEWEGUNG

Dieser Artikel ist Teil einer Serie von OSSL Befehlen zur NPC Nutzung in Openim.
Ich habe die Befehle Thematisch gegliedert:

Hier die Befehle zur NPC BEWEGUNG:

osNpcGetPos, osNpcGetRot, 
osNpcSetRot, osNpcMoveTo, osNpcMoveToTarget, osSetSpeed, osNpcStopMoveToTarget







Absolute Position des NPC ermitteln

vector osNpcGetPos(key npc)
Return the current position of the NPC.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Ermittelt die absolute Position des per Key/ UUID benannten NPCs in der Sim und gibt dieses Ergebnis als Vektor zurück.







Drehung des NPC abfragen

rotation osNpcGetRot(key npc)
Gets the rotation of the avatar. Only the rotation around the Z plane in Euler rotation (horizontal rotation) has any meaning.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Ermittelt die absolute Rotation des per Key/ UUID benannten NPCs in der Sim und gibt dieses Ergebnis als Rotation zurück.
Dabei ist nur der Z Wert tatsächlich beachtenswert. Dieser wird in „Euler“ Notation angegeben.
Euler ist eine Winkeldarstellung in Radians für die Angabe von Kreissegmenten.
Was "Euler" genau ist findet ihr in der Scriptinfo auf Secondlife. Dafür gibt es Umwandlungs Befehle in den LSL Script Funktionen.

Und mit diesen Funktion könnt ihr Euler <-> Rotation wandeln:  
http://wiki.secondlife.com/wiki/LlEuler2Rot
http://wiki.secondlife.com/wiki/LlRot2Euler






NPC drehen

osNpcSetRot(key npc, rotation rot)

Dreht den per Key/UUID benannten NPC auf eine zur Sim absolute Rotation in der Z-Achse.

Set the rotation of the avatar. Only setting the rotation in the Z plane in Euler rotation will have any meaningful effect (turning the avatar to point in one direction or another). Setting X or Y Euler values will result in the avatar rotating in an undefined manner.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Nur der Z Wert hat einen Funktion:
osNpcSetRot(npc, <0.000000, 0.000000, 1.000000, 0.000000>);  
osNpcSetRot(npc, llEuler2Rot(<0.0, 0.0, PI>));

Beschreibung der Funktion Euler2Rot:    http://wiki.secondlife.com/wiki/LlEuler2Rot







NPC an absolute Position bewegen

osNpcMoveTo(key npc, vector position)
Moves npc to the position.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Bewegt den per Key/UUID benannten NPC auf eine zur Sim absolute Position. Die Bewegung erfolgt in einem Schritt wie ein TP.
In diesem Fall wird der NPC bezogen auf seine vorherige Position um 5 m in der X-Achse und -1m der Y-Achse verstetzt.
osNpcMoveTo(npc, llGetPos() + <5.0, -1.0, 0.0>);







NPC in Richtung des Ziels losschicken

osNpcMoveToTarget(key npc, vector target, integer options)

Move the NPC to a given target over time. How the NPC will get there depends on the following options.
OS_NPC_FLY - Fly the NPC to the given position. The avatar will not land unless the OS_NPC_LAND_AT_TARGET option is also given.
OS_NPC_NO_FLY - Do not fly to the target. The NPC will attempt to walk to the location. If it's up in the air then the NPC will keep bouncing hopeless until another move target is given or the move is stopped.
OS_NPC_LAND_AT_TARGET - If given and the NPC is flying, then it will land when it reaches the target. If OS_NPC_NO_FLY is given then this option has no effect.
OS_NPC_FLY and OS_NPC_NO_FLY are options that cannot be combined - the NPC will end up doing one or the other. If you want the NPC to fly and land at the target, then OS_NPC_LAND_AT_TARGET must be combined with OS_NPC_FLY.
OS_NPC_RUNNING - make the NPC run to the given position.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Schickt den per Key/UUID benannten NPC los damit er die mit Vektor angegebene Position (irgendwann mal) erreicht.
Die Bewegung erfolgt in einstellbare Geschwindigkeit und dauert eine unbestimmte Zeit.

Die Geschwindigkeit mit der das auf das Ziel zugegangen wird ist mit osSetSpeed einstellbar. (nachfolgend beschrieben)

Die Art und Weise wie er hinkommt ist mit Parametern in „Options“ einstellbar.
So kann man vorgeben ob hin gegangen (kein Option Paramater) oder gelaufen (OS_NPC_RUNNING) wird.

Es ist auch einstellbar ob der Boden verlassen werden darf mittels Flug (OS_NPC_FLY
oder am Boden gegangen werden muss (OS_NPC_NO_FLY).

Falls geflogen wird, so erfolgt die Landung am Zielpunkt nur nach separatem Parameter (OS_NPC_LAND_AT_TARGET).
Mehrere Parameter werden durch „|“ getrennt angegeben.

Beispiel: flieg hin zu einem Ziel das von der aktuellen Position in 5m X und -1m Y entfernt ist. Lande am Ziel wenn es erreicht ist.
osNpcMoveToTarget(npc, llGetPos() + <5.0, -1.0, 0.0>, OS_NPC_FLY | OS_NPC_LAND_AT_TARGET );







Die Bewegungs Geschwindigkeit einstellen

osSetSpeed(key ID, float SpeedModifier)

This allows for users to speed themselves up. It multiplies the running, walking, rotating and flying of the avatar.
The default value for SpeedModifier is 1.0.
To be precise, it affects physical velocity. If you specify too large or too small number for SpeedModifier, the target will be unmovable, showing the following message in the region console:
[PHYSICS]: Got a NaN velocity from Scene in a Character
Threat Level Moderate
Permissions ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
Extra Delay 0 seconds

Mit diesem Befehl lässt sich die Laufgeschwindigkeit (für Avatare wie auch NPCs) einstellen. 
Das wirkt auf Befehle aus die ein Laufen, Fliegen, etc beinhalten. 
Im NPC Kontext macht das nur im Zusammenhang mit dem Befehl osNpcMoveToTarget Sinn.

osSetSpeed(llDetectedKey(0), 2.0);  // Doppelte Bewegungs- Geschwindigkeit
osSetSpeed(llDetectedKey(0), 1.0);  // Wieder Normal Geschwingigkeit







NPC Bewegung auf ein (noch nicht erreichtes) Ziel Stoppen

osNpcStopMoveToTarget(key npc)
Stop a current move to a target.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Mit diesem Befehl läßt sich ein Laufbefehl der mit osNpcMoveToTarget gegeben wurde wieder aufheben, auch wenn das Ziel noch nicht erreicht ist. Sinn macht das zum Beispiel in Zusammenhang mit einem Timer, der Zuschlägt wenn eine Bewegung zu lange gedauert hat, weil der Weg versperrt ist. Eine andere Anwendung ist Reaktion auf ein vorher nicht bekanntes Event.







Weitere Befehle sind in anderen Artikeln behandelt um die Übersichtlichkeit zu wahren.
Die Original Infos in Englisch findet ihr hier:

http://opensimulator.org/wiki/Scripting_Documentation

Drucke diesen Beitrag

  OSSL BEFEHLE zu NPC CHAT AUSGABE
Geschrieben von: Tron Mcp - 09.11.2021, 19:36 - Forum: Scripting - Keine Antworten

OSSL BEFEHLE zu NPC CHAT AUSGABE

Dieser Artikel ist Teil einer Serie von OSSL Befehlen zur NPC Nutzung in Openim.
Ich habe die Befehle Thematisch gegliedert: 

Hier die Befehle zur NPC CHAT Ausgabe:

osNpcWhisper, osNpcSay, osNpcShout, osNpsSayTo







Einen NPC flüstern lassen mit osNPCWhisper

osNpcWhisper(key npc, int channel, string message)
npc whispers message on the given channel.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

osNpcWhisper(npc, PUBLIC_CHANNEL, "Goodbye!");

Unter channel ist die kanalnummer des Kommunikationskanals gemeint. Diese sind als signed Int 2^8 definiert. 

- Die negativen Kanalnummern können nur von Prim zu Prim Kommunikation eingesetzt werden.
Dies kann zum Beispiel auch ein Fernsteuerungs Prim sein das den NPC kontrolliert.

- 0 oder PUBLIC_CHANNEL bezeichnen den lokalen öffentlichen Chat Kanal den jeder Ava in der Nähe mithört.

- Positive Kanäle können (auch gemischt) von Prims und Avataren genutzt werden.
Höhere Kanäle dienen gezielter Kommunikation mit ausgewählten Kommunikations Partnern.







Einen NPC reden lassen mit osNpcSay

osNpcSay ist identisch wie Whisper, nur ist der Eempfang weiter im Umkreis des NPCs

osNpcSay(key npc, integer channel, string message)
osNpcSay(key npc, string message)
npc says message on the given channel (channel is 0 in the second form)
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Für Say gibt es 2 Befehle die sich im ausgegeben Chatkanal unterscheiden

- Der erste Befehl deckt alle Anwendungsfälle ab, und ist identisch mit dem 2.Befehl wenn für channel der Wert 0 oder PUBLIC_CHANNEL eingetragen wird. So sind folgende beiden Beispiele in der Funktion identisch:
osNpcSay(npc, PUBLIC_CHANNEL, "Goodbye!");
osNpcSay(npc, "Goodbye!");

- Der zweite Befehl hgeht immer fest auf den allgemeinen Chatkanal 0.






Einen NPC laut Schreien lassen mit osNpcShout

ist identisch zu den 2 vorhergehenden Befehlen nur mit nochmals erhöhter Reichweite

osNpcShout(key npc, integer channel, string message)
npc shouts message on the given channel.
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Aber wer will schon schreiende NPCs?







Einen NPC gezielt einen Avatar oder ein Objekt ansprechen lassen

osNpsSayTo ist ähnlich zu osNpsSay , nur wird ein spezieller User über seine UUID angesprochen.
Somit wird nicht herumgespamt. 

osNpcSayTo(key npc, key target, integer channel, string message)
npc says message on the given channel to the specified target
Threat Level High
Permissions ${OSSL|osslNPC}
Extra Delay 0 seconds

Eine mögliche Anwendung ist ein spezieller Dialog mit jemanden der den NPC angeklickt hat, oder auf dem gleichen Poser sitzt.
Aber auf diese Art kann auch eine Fernbedienung realisiert werden.

Eine gute Anwendung sind Fahrzeug Rückmeldungen an den Fahrer eines Leihwagens.
So wird tatsächlich der Informiert der Fährt, und nicht der Besitzer des Wagens, oder alle in Hörweite. 
Das kann bei einem Rennen sehr nützlich sein.




Weitere Befehle sind in anderen Artikeln behandelt um die Übersichtlichkeit zu wahren.
Die Original Infos in Englisch findet ihr hier:

http://opensimulator.org/wiki/Scripting_Documentation

Drucke diesen Beitrag