Beiträge: 916
Themen: 135
Thanks Received: 539 in 292 posts
Thanks Given: 69
Registriert seit: Feb 2015
Um alle oder einzelne Skripte neu zu starten wenn OpenSim hochfährt, braucht man nur folgendes machen:
Die Datei startup_commands.txt.example in startup_commands.txt umbenenen.
Dann in diese Datei folgendes einfügen:
Code:
yeng reset Skriptname
oder bei allen Skripten:
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
Beiträge: 1.246
Themen: 136
Thanks Received: 1.094 in 579 posts
Thanks Given: 841
Registriert seit: May 2020
Habe es mal umgesetzt.
Seit dem Update nutzen wir ja die yeng.
Habe zwei Scripts die sich gerne mal daneben benehmen, bisher muss ich die nach dem Hochfahren manuell zurücksetzen.
Schau mer moarl ...
Beiträge: 2.450
Themen: 86
Thanks Received: 1.666 in 586 posts
Thanks Given: 1.865
Registriert seit: Oct 2011
To Be Used With Caution
Für einzelne Scripte, die Probleme machen und nach einem Reset dann wieder arbeiten mag das nützlich sein, ich kenne aber einige Fälle, in denen das zu eher unerwünschten Effekten führen könnte. Von einem generellen Restart aller Scripte beim Restart ist also eher abzuraten.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 1.246
Themen: 136
Thanks Received: 1.094 in 579 posts
Thanks Given: 841
Registriert seit: May 2020
Oh, ok thx.
Dann starte ich die lieber bei Bedarf per Hand neu.
Beiträge: 1.547
Themen: 74
Thanks Received: 786 in 337 posts
Thanks Given: 377
Registriert seit: May 2013
Anachron wollte nur warnen, das pauschal mit allen Scripten zu machen. Manche Scripte merken sich Einstellungen, die über den Reboot einer Sim erhalten bleiben sollen. Beispielsweise Besucherzähler, OSW-Beacon, manche Türscripte, Rollenspielscripte usw. Wenn du spezielle Problemscripte hast, die du dann eh immer von Hand neu startest, für sowas ist Manfeds Hinweis super. Also "yeng reset Skriptname"...
Beiträge: 2.450
Themen: 86
Thanks Received: 1.666 in 586 posts
Thanks Given: 1.865
Registriert seit: Oct 2011
(15.02.2022, 09:57)Mareta Dagostino schrieb: Anachron wollte nur warnen, das pauschal mit allen Scripten zu machen. Manche Scripte merken sich Einstellungen, die über den Reboot einer Sim erhalten bleiben sollen. Beispielsweise Besucherzähler, OSW-Beacon, manche Türscripte, Rollenspielscripte usw. Wenn du spezielle Problemscripte hast, die du dann eh immer von Hand neu startest, für sowas ist Manfeds Hinweis super. Also "yeng reset Skriptname"...
Perfekt erklärt
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 916
Themen: 135
Thanks Received: 539 in 292 posts
Thanks Given: 69
Registriert seit: Feb 2015
15.03.2022, 12:43
(Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2022, 14:57 von Manfred Aabye.)
Ja genau wie mein Infopaneel das wird so zu früh resettet.
Ich habe hierfür mal ein Inworld Skript angepasst.
Es wird einfach mit in´s Prim gelegt.
Skript: reset.lsl
PHP-Code:
/*
osResetAllScripts(integer AllLinkSet)
Resets all the scripts on the same prim if AllLinkSet is FALSE( or 0) or on same linkset if AllLinkSet is TRUE ( or 1 )
Diese Funktion kann schwer sein und aufgrund der asynchronen Natur von Skriptmodulen negative Nebenwirkungen haben.
Bedrohungsstufe Diese Funktion fuehrt keine Pruefung der Bedrohungsstufe durch
Berechtigungen Die Verwendung dieser Funktion ist standardmaeßig immer erlaubt
Verzögerung 0 Sekunden
Anmerkungen
Diese Funktion wurde am 10. Oktober 2019 zu 0.9.1.0 hinzugefuegt
*/
//
// osResetAllScripts Script Example
//
string BOOT_TIME = llGetTimestamp();
float warte = 20.0; // warte 20 Sekunden bis die Region geladen ist.
default
{
changed(integer change)
{
// Beachte dass es & und nicht && ist ... es ist bitweise!
if (change & CHANGED_REGION_START)
{
// Befehle die ausgefuehrt werden wenn die Region startet.
// Nachricht an Besitzer das die Region neu gestartet wurde.
key owner = llGetOwner();
string region = llGetRegionName();
BOOT_TIME = llGetTimestamp();
llInstantMessage(owner, "Region '" + region + "' wurde neu gestartet: " + BOOT_TIME );
// Warten und dann Skript resetten.
llSleep(warte);
llInstantMessage(owner, "Infopanel wird resettet!" );
osResetAllScripts(0);
}
}
state_entry()
{
osResetAllScripts(0);
}
touch_start(integer total_number)
{
osResetAllScripts(0);
}
}
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.