Task-Scheduler: Unterschied zwischen den Versionen

Aus Rising World Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:
Jede Zeile der Datei "scheduler.txt" wird einzeln behandelt - das bedeutet, einen Befehl pro Zeile hinzufügen. Jeder Befehl beginnt mit einem „'''@'''“-Zeichen, gefolgt vom Auslöser und dem eigentlichen Befehl. zB: <code>@15m /say Dies ist eine Testnachricht!</code>  
Jede Zeile der Datei "scheduler.txt" wird einzeln behandelt - das bedeutet, einen Befehl pro Zeile hinzufügen. Jeder Befehl beginnt mit einem „'''@'''“-Zeichen, gefolgt vom Auslöser und dem eigentlichen Befehl. zB: <code>@15m /say Dies ist eine Testnachricht!</code>  


'''Beispiel:'''
'''Beispiel:'''<syntaxhighlight lang="yaml">
 
##wird stündlich ausgeführt
##wird stündlich ausgeführt
@1h /say Eine weitere Stunde ist vergangen...
@1h /say Eine weitere Stunde ist vergangen...
Zeile 20: Zeile 19:
@1h30m /httprequest https: //example-domain-test.net/api/checkforrestart
@1h30m /httprequest https: //example-domain-test.net/api/checkforrestart
##Dadurch wird nach 12 Stunden ein Serverneustart ausgelöst
##Dadurch wird nach 12 Stunden ein Serverneustart ausgelöst
@+12h /restart
@+12h /restart  
 
</syntaxhighlight>Auf einige eingebaute Variablen kann ebenso zugegriffen werden, die immer verfügbar sind. Dies aktuelle Spieleranzahl (zugänglich über <code>%playercount%</code>) und jede Serveroption, die in der Datei "server.properties" definiert ist.
 
Auf einige eingebaute Variablen kann ebenso zugegriffen werden, die immer verfügbar sind. Dies aktuelle Spieleranzahl (zugänglich über <code>%playercount%</code>) und jede Serveroption, die in der Datei "server.properties" definiert ist.  


(z. B. <code>%serveroption.server.shortname%</code> oder <code>%serveroption.world.seed%</code>).
(z. B. <code>%serveroption.server.shortname%</code> oder <code>%serveroption.world.seed%</code>).
Zeile 68: Zeile 65:
|Wenn sich das Wetter ändert (entweder natürlich oder per Befehl)
|Wenn sich das Wetter ändert (entweder natürlich oder per Befehl)
|}
|}
'''Beispiel:'''
'''Beispiel:'''<syntaxhighlight lang="yaml">
 
##Wenn jemand einen anderen Spieler tötet, senden Sie ihm eine rote Nachricht
<nowiki>##</nowiki>Wenn jemand einen anderen Spieler tötet, senden Sie ihm eine rote Nachricht


@OnPlayerKilledPlayer /yell @%killer% <color=red>Du hast gemordet %name%</color>
@OnPlayerKilledPlayer /yell @%killer% <color=red>Du hast gemordet %name%</color>


<nowiki>##</nowiki>Sendet eine Chat-Nachricht an den verstorbenen Spieler (betonen Sie den Namen des Mörders).
##Sendet eine Chat-Nachricht an den verstorbenen Spieler (betonen Sie den Namen des Mörders).


@OnPlayerKilledPlayer /say @%name% Sie wurden von getötet <nowiki><b><u>%killer%</u></nowiki><nowiki></b></nowiki>!
@OnPlayerKilledPlayer /say @%name% Sie wurden von getötet <b><u>%killer%</u></b>!


<nowiki>##</nowiki>Willkommensnachricht an einen Spieler, wenn er dem Spiel beitritt
##Willkommensnachricht an einen Spieler, wenn er dem Spiel beitritt


@OnPlayerSpawn /say @%name% Willkommen bei %serveroption.server.shortname%! Bitte lesen Sie unsere Regeln
@OnPlayerSpawn /say @%name% Willkommen bei %serveroption.server.shortname%! Bitte lesen Sie unsere Regeln


<nowiki>##</nowiki>Nachricht, wenn sich das Wetter ändert
##Nachricht, wenn sich das Wetter ändert


@OnWeatherChange /say Wetter ändert sich zu %weather% jetzt...
@OnWeatherChange /say Wetter ändert sich zu %weather% jetzt...


<nowiki>##</nowiki>Wenn ein Spieler zum ersten Mal spawnt
##Wenn ein Spieler zum ersten Mal spawnt


@OnPlayerSpawn /say @%name% Hallo %name%, willkommen bei den %serveroption.shortname%. Derzeit gibt es %playercount% Spieler online!
@OnPlayerSpawn /say @%name% Hallo %name%, willkommen bei den %serveroption.shortname%. Derzeit gibt es %playercount% Spieler online!


<nowiki>##</nowiki>wenn ein Spieler stirbt (es sei denn, er wurde von einem anderen Spieler getötet).
##wenn ein Spieler stirbt (es sei denn, er wurde von einem anderen Spieler getötet).


@OnPlayerDeath /say <color=red>Player %name% died...</color>
@OnPlayerDeath /say <color=red>Player %name% died...</color>


<nowiki>##</nowiki>Dieses Ereignis wird ausgelöst, wenn ein Spieler einen anderen Spieler tötet, Ausgabefarbe ist hier Rot.
##Dieses Ereignis wird ausgelöst, wenn ein Spieler einen anderen Spieler tötet, Ausgabefarbe ist hier Rot.


@OnPlayerKilledPlayer /say <color=red>%killer% killed %name% with %item%</color>
@OnPlayerKilledPlayer /say <color=red>%killer% killed %name% with %item%</color>
Zeile 100: Zeile 96:
@OnPlayerKilledPlayer /yell @%killer% <color=red>%name% killed!</color>
@OnPlayerKilledPlayer /yell @%killer% <color=red>%name% killed!</color>


<nowiki>##</nowiki>Nachricht des Tages
##Nachricht des Tages


@1h /say Wir lieben Rising World, hab einen schönen Tag
@1h /say Wir lieben Rising World, hab einen schönen Tag


<nowiki>##</nowiki>Neustart Handling
##Neustart Handling


@+11h30m /say Warning: Server restarts in 30 minutes!
@+11h30m /say Warning: Server restarts in 30 minutes!
Zeile 119: Zeile 115:


@+12h /restart
@+12h /restart
</syntaxhighlight>

Version vom 10. Februar 2022, 13:21 Uhr

Der Task-Scheduler ist ein Aufgabenplaner für dedizierte Server.

Mittels eines Editors können über den Aufgabenplaner benuzterdefinierte Aufgaben für Mehrspieler-Server eingerichtet werden. Diese Aufgaben können zu bestimmten Zeiten oder bei bestimmten Aktionen durchgeführt werden. Der Task-Scheduler kann auf bestimmte Aktionen wie zB die namendliche Begrüßung oder den Tod eines Spielers reagieren.

Einrichten des Aufgabenplaners:

Unter den Multiplayer-Server Daten, befindet sich eine Datei Names "scheduler.example.txt", diese kann mit einem Editor bearbeitet werden. Zum aktivieren des Task-Scheduler muß die "scheduler.example.txt" in "scheduler.txt" geändert werden. Nach einem Restart des Servers ist der Aufgabenplaner aktiv.

Jede Zeile der Datei "scheduler.txt" wird einzeln behandelt - das bedeutet, einen Befehl pro Zeile hinzufügen. Jeder Befehl beginnt mit einem „@“-Zeichen, gefolgt vom Auslöser und dem eigentlichen Befehl. zB: @15m /say Dies ist eine Testnachricht!

Beispiel:

##wird stündlich ausgeführt
@1h /say Eine weitere Stunde ist vergangen...
##alle 10 Minuten eine grüne Chat-Nachricht
@10m /say <color=green>Hallo Rising Worldspieler!</color>
##führt den "saveall"-Befehl um 15:00 Uhr aus
@15:00 /saveall
##Sendet alle 1,5 Stunden eine HTTP-Anfrage. Bei Erfolg wird der Rückgabewert als neuer Befehl behandelt
@1h30m /httprequest https: //example-domain-test.net/api/checkforrestart
##Dadurch wird nach 12 Stunden ein Serverneustart ausgelöst
@+12h /restart

Auf einige eingebaute Variablen kann ebenso zugegriffen werden, die immer verfügbar sind. Dies aktuelle Spieleranzahl (zugänglich über %playercount%) und jede Serveroption, die in der Datei "server.properties" definiert ist.

(z. B. %serveroption.server.shortname% oder %serveroption.world.seed%).

Tabelle für bestimmter Ereignisse
Befehl Parameter Beschreibung
@OnPlayerConnect %name% (name des spielers) Wird immer dann aufgerufen, wenn sich ein Spieler mit dem Server verbindet
@OnPlayerDisconnect %name% (name des spielers) Wird immer dann aufgerufen, wenn ein Spieler die Verbindung zum Server trennt
@OnPlayerSpawn %name% (name des spielers) Wenn ein Spieler auf dem Server spawnt
@OnPlayerRespawn %name% (name des spielers) Wenn ein Spieler wieder auftaucht (nach dem Tod)
@OnPlayerDeath %name% (name des spielers) Wenn ein Spieler stirbt (es sei denn, er wurde von einem anderen Spieler oder NPC getötet)
@OnPlayerKilledPlayer %name% (Name des verstorbenen Spielers), %killer% (Name des Mörders), %item% (Item, was verwendet wurde) Wenn ein Spieler von einem anderen Spieler getötet wurde
@OnPlayerKilledNpc %name% (Name des Spielers, der den NPC getötet hat), %npc% (NPC, der gestorben ist), %item% (Item, was verwendet wurde) Wenn ein Spieler einen NPC tötet
@OnNpcKilledPlayer %name% (Name des verstorbenen Spielers), %npc% (Name des Killer-NPCs) Wenn ein NPC einen Spieler tötet
@OnWeatherChange %weather% (Name des neuen Wettertyps), %oldweather% (vorher eingestellter Wettertyp) Wenn sich das Wetter ändert (entweder natürlich oder per Befehl)

Beispiel:

##Wenn jemand einen anderen Spieler tötet, senden Sie ihm eine rote Nachricht

@OnPlayerKilledPlayer /yell @%killer% <color=red>Du hast gemordet %name%</color>

##Sendet eine Chat-Nachricht an den verstorbenen Spieler (betonen Sie den Namen des Mörders).

@OnPlayerKilledPlayer /say @%name% Sie wurden von getötet <b><u>%killer%</u></b>!

##Willkommensnachricht an einen Spieler, wenn er dem Spiel beitritt

@OnPlayerSpawn /say @%name% Willkommen bei %serveroption.server.shortname%! Bitte lesen Sie unsere Regeln

##Nachricht, wenn sich das Wetter ändert

@OnWeatherChange /say Wetter ändert sich zu %weather% jetzt...

##Wenn ein Spieler zum ersten Mal spawnt

@OnPlayerSpawn /say @%name% Hallo %name%, willkommen bei den %serveroption.shortname%. Derzeit gibt es %playercount% Spieler online!

##wenn ein Spieler stirbt (es sei denn, er wurde von einem anderen Spieler getötet).

@OnPlayerDeath /say <color=red>Player %name% died...</color>

##Dieses Ereignis wird ausgelöst, wenn ein Spieler einen anderen Spieler tötet, Ausgabefarbe ist hier Rot.

@OnPlayerKilledPlayer /say <color=red>%killer% killed %name% with %item%</color>

@OnPlayerKilledPlayer /yell @%killer% <color=red>%name% killed!</color>

##Nachricht des Tages

@1h /say Wir lieben Rising World, hab einen schönen Tag

##Neustart Handling

@+11h30m /say Warning: Server restarts in 30 minutes!

@+11h45m /say Warning: Server restarts in 15 minutes!

@+11h50m /yell Server restarts in 10 minutes!

@+11h55m /yell Server restarts in 5 minutes!

@+11h57m /kickall Server restart

@+11h58m /saveall

@+12h /restart